Opencv學習筆記04 -- ROI

ROI簡介

ROI指的是Region of interest ,即感興趣區域。我們經常在人臉識別中看到的標記人臉的框框就可以看成一種ROI
在這裏插入圖片描述

創造ROI

代碼如下

#引入包
import cv2

#讀圖片
img = cv2.imread('bear.jpg',1)

#根據需求修改圖片的大小,這裏注意我們輸入的1920×1080中前面的1920是寬度,後面是高度。這和圖片的輸出是完全相反的
img = cv2.resize(img,(1920,1080))

#rectang函數是ROI構建的函數,一共有5個參數
#第一個參數是傳入的圖片名稱
#第二三參數是設置ROI的範圍,下文將會詳細講解
#第四五個參數是設置ROI邊框的顏色和粗細。這裏邊框是紅色,寬度爲3
cv2.rectangle(img,(1500,300),(1400,450),(0,0,255),3)

cv2.imshow("picture",img)
cv2.waitKey(0)
cv2.destroyAllWindows()



具體演時如下:
原圖:
在這裏插入圖片描述
效果:
在這裏插入圖片描述
這裏我想說明一下紅框的範圍,rectangle函數中的第二和第三參數分別指的是紅框的這兩個對角點,具體的位置可以根據需求自己調整
在這裏插入圖片描述

下面我想記錄一下ROI在局部的操作

import cv2

img = cv2.imread('bear.jpg',1)

print(img.shape)
#取ROI區域
face = img[4:9,15:45]
#對區域進行操作,注意若改變黑白前後則會導致通道數量改變
gray_face = cv2.cvtColor(face,cv2.COLOR_RGB2GRAY)
backface = cv2.cvtColor(gray_face,cv2.COLOR_GRAY2BGR)
#將改變後的區域重新賦值給img
img[10:95,15:45] = backface
cv2.imshow('gray face',img)
cv2.waitKey(100000)
cv2.destroyAllWindows()


這樣我們就可以做到對局部操作了


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