很多時候我們需要在一定區域內做圖像處理,所以要摳出這部分檢測區域,分爲改變原圖大小和保留原圖大小兩種情況
不改變原圖大小的情況下
首先我們要有檢測區域
Rect reduceRect = Rect(215,1760 , 85,350);
然後創建一個和原圖一樣大小的純黑圖像
mask = Mat::zeros(image.size(), CV_8UC1);
再將mask圖中的reduceRect 區域使用setto設置成255,這樣我們的掩膜就做好了
mask(reduceRect ).setTo(255); //reduceRect 是設置好的感興趣區域
然後使用copyto做掩膜處理,
Amat.copyto(Bmat,mask);
從開篇可知,Amat.copyto(Bmat,mask)不僅是把A複製到B上,並且A圖像中對應mask的像素爲零的點都不會貼到b上,這個動作其實就是圖像的與運算
裁剪圖和原圖的反圖的話就是img.setTo(0, mask);
直接摳出最簡單了,直接reducemat=img(reduceRect );