У меня есть двумерная пустая матрица размером 512x256. Я могу легко преобразовать его в изображение с помощью PIL, scipy и т. д., но это, очевидно, дает мне форму прямоугольника размером 512x256. Мне интересно, могу ли я что-то сделать, чтобы эта матрица приняла форму конуса, как на рисунке?
Я думаю об этом так: первый столбец матрицы будет самой левой линией конуса, а следующий столбец матрицы будет немного правее этой линии и так далее. Поскольку угол между двумя крайними точками равен 45 градусам, а у меня 256 столбцов, значит ли это, что каждая строка получает приращение угла (45/256) градусов? Это всего лишь некоторые грубые мысли, но я хотел узнать у сообщества, есть ли у них какие-либо идеи о том, как мне поступить с этим? Я представляю основное изображение черного квадрата и этот конус посередине. Любые идеи/мысли?
вам всегда будет нужна полная пиксельная матрица для создания изображения, поэтому, когда вы хотите преобразовать из равноудаленной декартовой системы координат, но все же сделать изображение на основе пикселей, вам придется подумать о схеме того, что поместить в пиксели, которые по определению будут быть пустым, как только вы сделали свой конус. Если вы погуглите «проекции» или «преобразования», вы должны найти то, что ищете с точки зрения изготовления конуса. Но, как уже отмечалось, у вас все еще есть «пустые» пиксели, которые вы можете заполнить по своему вкусу. А может вам повезло и кто-то сделал для этого библиотеку, если да, то я не в курсе.
Итак, чего вы на самом деле хотите достичь, т. е. каков более высокий уровень проблемы, на который вы смотрите? Я имею в виду, что существует множество программ, которые будут смешивать/преобразовывать векторную графику (а также пиксельную графику), но вашей отправной точкой является изображение, представленное матрицей numpy?
в основном, вы ищете преобразование из полярных координат в линейные, где X в исходном изображении — это угол, а Y — расстояние. Это сообщение может оказаться полезным
@ahed87 - вы видели снимки УЗИ? Они имеют конусообразную форму. Вы правы, что моей отправной точкой была не пустая матрица, а необработанные данные чисел. Пришлось почистить и все, а потом создать несколько матриц, где каждая матрица представляет кадр. И да, Google не вернул никакой удобной библиотеки, которую я мог бы использовать для этого преобразования.