基於python3的opencv影象處理教程:
在常見的計算機視覺問題中,通常我們只對影象中的某一部分區域感興趣,比如人臉區域等,因此我們只需要對人臉區域部分進行提取,然後再進行後續的操作。
對於影象roi區域,只需要將自己預先計算好的區域大概範圍的影象值賦值給新的變數並顯示即可。最方便的方式是使用numpy來進行獲取影象陣列資料。
#8.1,roi切割
import cv2 as cv
import numpy as np
defimage_clip
(image)
:#自己預先數好的大概位置範圍
)
執行結果:
#8.2,漫水填充floodfill函式
import cv2 as cv
import numpy as np
deffloodfill_demo
(image)
:#複製建立乙個影象副本
print
(image.shape)
copyimage=image.copy(
) h,w=copyimage.shape[:2
]#此處注意掩膜的高寬要比原始影象多2,
#即上下左右各多乙個畫素大小,防止填充失敗。
#注意:模板mask為單通道8位。
)
函式引數說明:cv.floodfill(image, mask, seedpoint, newval[, lodiff[, updiff[, flags]]])
填充規則:
src(seed.x,seed.y)-lodiff<=src(x,y)<=src(seed.x,seed.y)+updiff
上述案例:
(image,mask,(0,80), (22, 22, 222),(100, 100, 100), (50, 50, 100),cv.floodfill_fixed_range)
image:影象輸入/輸出1或3通道、8位或浮點影象。
mask:填充模板,整體填充不能跨越輸入遮罩中的非零畫素。例如,邊緣檢測器輸出可以用作遮罩,以停止邊緣填充。輸出時,畫素與影象中填充畫素對應的遮罩設定為1或標誌中指定的值。
seedpoint:引數種子點起始點。
newval:重新繪製的域畫素的新值。表示填充區域顏色
lodiff:(100, 100, 100)表示種子點位置的畫素三通道的畫素值減去該值,表示為低值
updiff:(50, 50, 50)表示表示種子點位置的畫素三通道的畫素值加上該值,表示為高值
flags:引數標誌操作標誌。
cv.floodfill_fixed_range:表示在該低值與高值範圍內的全部填充為區域顏色。改變影象,漫水(泛洪)填充。
cv.floodfill_mask_only:不改變影象,只填充模板本身,忽略新的顏色值引數。
即修改flags引數:cv.floodfill_mask_only
import cv2 as cv
import numpy as np
deffill_binary()
:#建立乙個三通道的影象值均為0
image=np.zeros(
[400
,400,3
],np.uint8)
#設定乙個roi區域大小,並將該區域的值設定為255
image[
100:
300,
100:
300,:]
=255
cv.imshow(
"fill_binary"
,image)
h,w=image.shape[:2
] mask=np.zeros(
[h+2
,w+2
],np.uint8)
#設定填充區域的初始值
在常見的計算機視覺問題中,通常我們只對影象中的某一部分區域感興趣,比如人臉區域等,因此我們只需要對人臉區域部分進行提取,然後再進行後續的操作。
OpenCV基礎筆記5 ROI與泛洪填充
roi region of interest 即感興趣區域。有時在對一幅影象進行處理分析時,需要對其特定區域進行操作。例如我們需要檢測一副人像中眼睛的位置,我們首先應在影象中找到人臉,再在人臉的區域範圍內找到眼睛,這樣可以提高程式執行的準確性和效能,而不是直接在一副影象中進行全域性搜尋。如現在需要對...
Opencv學習筆記之感性區 ROI
opencv3程式設計入門 系列學習筆記 roi 感興趣 說明 roi就是影象分析所關注的重點,劃定乙個區域,以便進行進一步處理,同時可以指定想要讀入的目標,減少處理時間,增加精度。設定roi常用的兩種方式 第一種 使用表示矩形區域的rect.由左上角的座標 建構函式前兩個引數 和矩形的長寬 建構函...
openCV學習筆記 ROI區域的操作
如下 include include includeusing namespace cv using namespace std 函式宣告 bool roi addimage 主函式 int main int argc,char argv bool roi addimage roi線性混合的操作 函...