Преобразование изображений между cv2, cv, mahotas и SimpleCV - PullRequest
5 голосов
/ 10 февраля 2012

В последнее время мне приходится много работать над зрением в Python, и я сталкиваюсь с множеством трудностей при переключении между форматами.Когда я читаю изображение с помощью Mahotas, я не могу передать его на cv2, хотя они оба используют numpy.ndarray.SimpleCV может легко получать изображения OpenCV, но вывести изображение SimpleCV для устаревшего cv или mahotas кажется довольно сложной задачей.

Некоторые синтаксисы преобразования формата были бы очень полезны.Например, если я открою изображение в градациях серого с помощью mahotas, оно по умолчанию считается находящимся в цветовом пространстве с плавающей точкой.Даже когда я назначаю тип как numpy.uint8, cv2 не может распознать его как массив.Я не знаю, как решить эту проблему.Мне тоже не повезло с цветными изображениями.Я использую Python 2.7 32bit в Ubuntu Oneiric Ocelot.

Заранее спасибо!

Ответы [ 2 ]

2 голосов
/ 27 января 2017

Имея только опыт работы с cv2 и SimpleCV, для преобразования из SimpleCV в cv2:

cv2_image = simplecv_image.getNumpyCv2()

Для преобразования из cv2 в SimpleCV:

simplecv_image = Image(cv2_image.transpose(1, 0, 2)[:, :, ::-1])
2 голосов
/ 10 июля 2012

Я никогда не пользовался махотами.Но сейчас я работаю над SimpleCV.Я только что отправил запрос на извлечение для того, чтобы сделать numy массив SimpleCV совместимым с cv2.

Итак, в основном,

Image.getNumpy () -> numpy.ndarray для cv2

Image.getBitmap () -> cv2.cv.iplimage

Image.getMatrix () -> cv2.cv.cvmat

Для преобразования массива cv2 в изображение SimpleCVобъект,

Изображение (cv2_image) -> SimpleCV.ImageClass.Image

...