2013-03-15 176 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) 
相關問題