2013-03-15 3 views
9

Я пытаюсь получить область изображения (ROI), используя opencv python. Используемая версия opencv - 2.4.3. Однако, когда я пытаюсь вызвать АНИОбласть интересов opencv python

cv2.SetImageROI 

он возвращает мне ошибку

AttributeError: 'module' object has no attribute 'SetImageROI' 

Также на проверку документации, что, кажется, предложить этот API является функцией наследство питона. http://docs.opencv.org/2.4.3/search.html?q=setimageroi

Я не уверен, как идти о получении ROI, используя эту текущую версию opencv в python. Может кто-нибудь предложить, как это сделать?

Благодаря

ответ

21

Хорошо, При дальнейшем анализе не понял, что CV2, поскольку она поддерживает Numpy структуру массива, то больше нет необходимости в API, все изображение можно манипулировать в самом массиве. например:

img = cv2.imread('image.png') 
img = img[c1:c1+25,r1:r1+25] 

Здесь с1 находится с левой стороны колонка расположения пикселей, и R1 представл ет собой соответствующее местоположение ряда. И img теперь имеет изображение, указанное в пикселях, как ROI.

EDIT: Очень хорошо объяснено здесь, How to copy a image region using opencv in python?

+0

Посмотрите также на ответ @Abid Rahman K здесь: http://stackoverflow.com/questions/9084609/how-to-copy-a-image-region-using-opencv-in-python –

+0

Это кажется более полным в объяснении , Спасибо –

+1

@AjayNair Как бы вы обрезать, если интересующая область представляет собой вращающийся прямоугольник? – annena

3

Как уже упоминалось в documentation и относительно сообщение об ошибке вы получили, вы скорее должны импортировать соответствующий модуль, а затем вызвать SetImageROI() метод:

import cv 
cv.SetImageROI(imag, rect) 
Смежные вопросы