OpenCV-感興趣區域ROI

  • 2019 年 11 月 13 日
  • 筆記

得益於Python科學計算Numpy模組,我們可以把影像轉換為擁有三個維度的像素ndarray數組。因此可以通過ndarray數組對影像進行處理。本小節介紹的是ROI。

什麼是ROI?

ROI(region of interest),即感興趣區域。感興趣區域,就是分析影像所關注的焦點。比如說,我們對一張圖片進行人臉的識別,此時我們只需要關注圖片中人臉的部分即可,也就是說此時人臉所在的區域就是我們所關注的焦點,也就是感興趣的區域(ROI)。

提取圖片中ROI

提取ROI圖片名為"my_love.jpg":

此時我們感興趣的地方為美女的臉,提取圖片中人臉的部分,具體程式碼如下:

提取出來的人臉部分:

為什麼此時指定的區域是[150:500,160:550]?

將圖片轉換為了三維數組,其實提取roi,簡單來說就是獲取數組中指定區域的值,由於第三個維度是通道數,我們只關注整張圖片中的某一區域,因此在提取的時候不需要考慮第三個維度。那此時只需要考慮圖片的高和寬即可,只需要簡單的把整張圖片看成是一個矩陣(因為此時不需要考慮第三個維度),矩陣從左上角的(0, 0)開始到右下腳的(影像高度, 影像寬度)。

可以把我們關注的區域(ROI)提取出來,相應的也可以將ROI區域合併到原始的影像中去。為了效果明顯,我們將提取出來的face進行色彩空間轉換,然後將轉換後的face合併到原始的影像中。

效果如下所示:

通過上面的實驗,我們可以將另一張圖片與原始圖片進行合併。接下來,將下面這個名為"emoji.jpg"表情圖片與上面的原始圖片進行合併。

我們將表情圖片放在到原始圖片的左下角位置:

效果如下所示: