python-opencv:cv2.selectROI用法、參數 、返回值的解讀

在一幅圖像中,如何選擇自己感興趣的區域,並且對這個感興趣的區域進行截取,以便對其進行跟多的操作呢?

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])] 需要橫縱座標調換一下】
在這裏插入圖片描述

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章