Я пытаюсь сшить некоторые изображения, снятые с моей камеры OpenMV H7, используя алгоритм сшивания OpenCV. Я столкнулся с проблемой, что я не могу писать или читать эти изображения, что заставило меня подумать, что есть ...

0
Gabriel A. Colón Sánchez 14 Янв 2021 в 03:24

1 ответ

Лучший ответ

OpenCV imwrite ожидает объект Mat, который является n-мерный плотный массив ". Передача массива данных изображения numpy вместо объектов Mat, по крайней мере в случае imwrite (), даст правильный результат.

Из документации, указанной выше:

Таким образом, макет данных в Mat совместим с большинством типов плотных массивов из стандартных наборов инструментов и SDK, таких как Numpy (ndarray), Win32 (независимые растровые изображения устройств) и другими, то есть с любым массивом, который использует шаги ( или шагов), чтобы вычислить положение пикселя. Благодаря этой совместимости можно создать заголовок Mat для данных, выделенных пользователем, и обработать его на месте с помощью функций OpenCV.

Для вашего кода:

cv2.imwrite("/Documents/Cam/Images/image_" + str(images_To_Be_Taken), np.asarray(img))
0
PeptideWitch 14 Янв 2021 в 04:02