Я работаю над приложением перспективного преобразования, включающим преобразование 3D-точек в пиксели 2D-камеры. Это чисто математическая модель, потому что я готовлюсь использовать ее на оборудовании, к которому у меня нет доступа (поэтому я составляю значения фокусного расстояния и смещения для матрицы встроенной камеры).
Когда я делаю сопоставление, в зависимости от местоположения xyz камеры, я получаю огромные различия в том, где находится мое преобразованное изображение, и я должен сделать матрицу, в которую я вводю пиксели, действительно большой. (Я отображаю изображение размером 1000x1000 пикселей на изображение размером примерно 600x600 пикселей, но оно расположено около 6000, поэтому я должен сделать свою выходную матрицу 7000x7000, которая занимает много времени для plt.imshow. У меня нет пользы для фактическое расположение пикселей, потому что меня интересует только то, как выглядит переназначенное изображение.
Мне было интересно, как люди справились с этой проблемой:
Я могу подумать о том, чтобы просто обрезать изображение до области, которая не равна нулю (где мои пиксели на самом деле тоже отображаются? Как видно в:
Как обрезать двумерный массив с нулевыми значениями?
но это все еще требует от меня использования пространства и времени для выделения матрицы назначения 7000x7000