關於掩膜和copyto的一些理解(轉Madcola以及其他網站)



很多時候我們需要在一定區域內做圖像處理,所以要摳出這部分檢測區域,分爲改變原圖大小和保留原圖大小兩種情況
不改變原圖大小的情況下
首先我們要有檢測區域
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 );

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