一:ROI
ROI(region of interest),中文翻譯過來就是感興趣區域,在機器視覺、圖像處理中,從被處理的圖像以方框、圓、橢圓、不規則多邊形等方式勾勒出需要處理的區域,這一部分區域被我們稱之為感興趣區域。
ROI選定的這個區域一般是我們所關注的重點,圈定該區域后我們可以進行進一步的處理,在一定程度上可以減少工作量。
ROI主要應用在視頻監控領域,最常見的為ROI智能視頻編碼技術,具有ROI功能的攝像機可以讓用戶選擇畫面中感興趣的區域,啟用ROI功能后,重要的或者移動的區域將會進行高質量無損編碼, 而對那些不移動,不被選擇的區域降低其碼率和圖像質量,進行標準清晰度視頻壓縮,甚至是不傳輸這部分區域視頻,達到節省網絡帶寬占用和視頻存儲空間。
現在我們使用OpenCV來進行實操:
在代碼中,我們選擇 選擇50:180行、100:220列區域作為截取對象,首先先生成灰度圖,這里的灰度圖是單通道圖像,后續將單通道圖像轉換為三通道RGB灰度圖,因為只有三通道的backface才可以賦給三通道的src,有一點需要注意,COLOR_RGB2GRAY是把三通道RGB對象轉換為單通道灰度對象!!!
得到結果如下:
可以看到Windows的logo被灰色圈出,這一個logo可以被稱之為我們的ROI區域。
二:泛洪填充
泛洪填充算法(Flood Fill Algorithm),泛洪填充算法又稱洪水填充算法,這是在很多圖形繪制軟件中常用的填充算法,最熟悉不過就是windows paint的油漆桶功能。算法的原理很簡單,就是從一個點開始附近像素點,填充成新的顏色,直到封閉區域內的所有像素點都被填充新顏色為止。泛紅填充實現最常見有四鄰域像素填充法,八鄰域像素填充法,基于掃描線的像素填充方法。根據實現又可以分為遞歸與非遞歸(基于棧)。
我們可以理解為泛洪填充是一種彩色圖像填充。
①:FLOODFILL_FIXED_RANGE – 改變圖像,泛洪填充
代碼如下:
在代碼里,有幾個點需要注意
1:我們設置的圖片(mask)都是為uin8類型的單通道陣列,另外為何mask中需要+2,因為當從0行0列開始泛洪填充掃描時,mask多出來的2可以保證掃描的邊界上的像素都會被處理。
2:floodFill函數 floodFill(image, mask, seedPoint, newVal[, loDiff[, upDiff[, flags]]])
Image:表示輸入/輸出1或3通道,8位或浮點圖像。
Mask:表示掩碼,該掩碼是單通道8位圖像,比image的高度多2個像素,寬度多2個像素。填充時不能穿過輸入掩碼中的非零像素。
seedPoint:表示泛洪算法(漫水填充算法)的起始點。
newVal參數表示在重繪區域像素的新值。
loDiff參數表示當前觀察像素值與其部件鄰域像素值或待加入該組件的種子像素之間的亮度或顏色之負差的最大值。
upDiff參數表示當前觀察像素值與其部件鄰域像素值或待加入該組件的種子像素之間的亮度或顏色之正差的最大值。
flags參數:操作標志符,包含三部分:
低八位(0~7位):用于控制算法的連通性,可取4(默認)或8。
中間八位(8~15位):用于指定掩碼圖像的值,但是如果中間八位為0則掩碼用1來填充。
高八位(16~32位):可以為0或者如下兩種標志符的組合:
LOODFILL_FIXED_RANGE:表示此標志會考慮當前像素與種子像素之間的差,否則就考慮當前像素與相鄰像素的差。
FLOODFILL_MASK_ONLY:表示函數不會去填充改變原始圖像,而是去填充掩碼圖像mask,mask指定的位置為零時才填充,不為零不填充。
在圖像中,我們以(30,30)為起點開始計算:
得到結果如下:
參考文章:
https://www.cnblogs.com/little-monkey/p/7598529.html
責任編輯:xj
原文標題:【CV學習筆記】ROI與泛洪填充
文章出處:【微信公眾號:深度學習自然語言處理】歡迎添加關注!文章轉載請注明出處。
-
圖像處理
+關注
關注
27文章
1300瀏覽量
56894 -
機器視覺
+關注
關注
162文章
4406瀏覽量
120735 -
CV
+關注
關注
0文章
53瀏覽量
16906
原文標題:【CV學習筆記】ROI與泛洪填充
文章出處:【微信號:zenRRan,微信公眾號:深度學習自然語言處理】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論