不規則Contours內部畫素的操作

2021-07-08 13:19:41 字數 811 閱讀 6749

在findcontours函式使用了之後,有時候就會面臨對contours內部區域的訪問。由於contours不一定是凸圖形,所以使用迴圈操作的時候總感覺不那麼方便。比如在下圖中,已經使用findcontours查詢到邊界並填充邊界內部,然後與源影象進行and運算後的結果:

這時候要對非規則點的區域進行相關特徵的計算,比如說是區域的灰度均值。觀察影象的特徵可以發現除了我們需要的點外,其他的都是黑色的背景(灰度值是0!)。那麼就可以使用這個特點來除去背景點了。

步驟:1、對每乙個contours區域求它的包絡矩形(為了方便遍歷畫素,就不使用旋轉矩形)

mat drawing = mat::zeros(m_srcimg.size(), cv_8uc3 );

for( int i = 0; i< m_contour->size(); i++ )}}

2、對矩形內的每乙個畫素點進行遍歷,對矩形區域的畫素遍歷顯然變得比較方便了。
為了驗證矩形區域的有效性,把矩形區域都用顏色標註出來

然後在畫素遍歷函式中來排除背景畫素點就可以了,最後得到的效果如下,這就說明這種方式是可以實現的。

不規則遮罩

不規則遮罩用不規則png去做遮罩,但是需要加個filter 對乙個displayobject應用乙個不規則遮罩可以有兩種方法 displayobjecta為被遮罩物件 displayobjectb是遮罩物件 1.用於做遮罩的displayobjectb用其graphic 畫出不規則的圖形,然後被遮罩...

MFC不規則視窗

直接在onpaint 函式裡新增語句 setwindowlong m hwnd,gwl exstyle,getwindowlong m hwnd,gwl exstyle ws ex layered setlayeredwindowattributes rgb 255,255,255 0,lwa co...

不規則瀑布流

封裝的layout import import protocol waterlayoutdelegate required cgsize collectionview uicollectionview collectionview layout uicollectionviewlayout coll...