2013-03-15 179 views
9

我想要使用opencv python获取图像区域(ROI)。所使用的opencv版本是2.4.3。然而,当我尝试调用API感兴趣的区域opencv python

cv2.SetImageROI 

返回我的错误

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

同样在检查它似乎在暗示这个API的文档是一个旧的Python函数。 http://docs.opencv.org/2.4.3/search.html?q=setimageroi

我不知道如何在python中使用当前版本的opencv获得ROI。有人可以建议如何去做这件事吗?

由于

回答

21

好了,在进一步的分析意识到,因为已经支撑numpy的阵列结构的CV2,不再有任何需要一个API,整个图像可在阵列本身进行操作。 例如:

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

这里c1为左侧列的像素的位置,和r1是相应的行位置。而img现在将像素中指定的图像指定为ROI。

编辑: 非常漂亮解释这里,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 – 2013-03-15 06:49:43

+0

这在解释中似乎更全面。谢谢 – 2013-03-15 06:52:16

+1

@AjayNair如果感兴趣的区域是一个旋转的矩形,你会如何裁剪? – annena 2015-05-27 01:32:11

3

正如documentation提到了,关于你得到了错误信息,而需要导入相应的模块,然后调用SetImageROI()方法:

import cv 
cv.SetImageROI(imag, rect) 
相关问题