在一幅圖像中,如何選擇自己感興趣的區域,並且對這個感興趣的區域進行截取,以便對其進行跟多的操作呢?
image=cv2.imread('example.png')
cv2.namedWindow('img')
r = cv2.selectROI('roi', image, False, False )
cv2.waitKey(0)
參數解讀:
selectROI(windowName, img, showCrosshair=None, fromCenter=None):
. 參數windowName:選擇的區域被顯示在的窗口的名字
. 參數img:要在什麼圖片上選擇ROI
. 參數showCrosshair:是否在矩形框裏畫十字線.
. 參數fromCenter:是否是從矩形框的中心開始畫
返回值:
image=cv2.imread('example.png')
cv2.namedWindow('img')
r = cv2.selectROI('roi', image, False, False )
print(r)
cv2.waitKey(0)
返回的是一個列表[min_x,min_y,w,h]:
第一個值爲矩形框中最小的x值
第二個值爲矩形框中最小的y值
第三個值爲這個矩形框的寬
第四個值爲這個矩形框的高
截取ROI:
image=cv2.imread('example.png')
cv2.namedWindow('img')
r = cv2.selectROI('roi', image, False, False )
print(r)
img_roi = image[int(r[1]):int(r[1]+r[3]),int(r[0]):int(r[0]+r[2])]
cv2.imshow("imageHSV",img_roi)
cv2.waitKey(0)
【注意:這裏image[int(r[1]):int(r[1]+r[3]),int(r[0]):int(r[0]+r[2])]
需要橫縱座標調換一下】