輪廓提取——主要針對二值影象
<1> 輪廓分為外輪廓和內輪廓 如下圖:外輪廓以c開頭 內輪廓以h開頭
其中img是二值影象, storage是記憶體儲存序列, contours指向儲存的第乙個輪廓,
cvmemstorage *storage =cvcreatememstorage(0); //
記憶體儲存序列
cvseq *contours = 0; //指向storage中的序列
cv_retr_list表明輪廓在記憶體中的排列方式,有以下四種:
輪廓的排列方式《在記憶體中》
cv_retr_external:first = c0
cv_retr_ccomp:從裡到外 從右到左 這是乙個雙向鍊錶
first = c01001 c01000 h0100 h0000 h0100 h0000 c010 c000 h01 h00 c0 這也是雙向鍊錶
cv_retr_tree
:<3>案例
結果展示:
cvseq *intercon = contourstemp->v_next; // 訪問每個輪廓的縱向輪廓
for(; intercon != 0; intercon = intercon ->h_next)
} } cvnamedwindow("contoursimage"
);
cvshowimage("contoursimage"
, contoursimage);
cvnamedwindow("imgcolor"
);
cvshowimage("imgcolor"
,imgcolor);
cvwaitkey(0);
cvreleasememstorage(&storage); // 也要釋放記憶體序列空間
cvreleaseimage(&contoursimage);
cvreleaseimage(&imgcolor);
cvdestroywindow("contoursimage"
);
cvdestroywindow("imgcolor"
);
return
0;"font-family:arial,helvetica,sans-serif"
>}
opencv 9 輪廓 性質
邊界矩形的寬高比 x,y,w,h cv2.boundingrect cnt aspect ratio float w h輪廓面積與邊界矩形面積的比 area cv2.contourarea cnt x,y,w,h cv2.boundingrect cnt rect area w h extent f...
opencv學習心得六 輪廓提取
在使用此函式時,先定義cvmemstorage storage cvcreatememstorage 0 cvseq contour mode 0.cv retr external,只提取外輪廓 1.cv retr list 檢索所有的輪廓,並將其放入list中 2.cv retr ccomp 檢索...
opencv學習(四)輪廓識別
本章學習輪廓識別 bbb.cpp 定義控制台應用程式的入口點。include stdafx.h include using namespace std using namespace cv int tmain size refs size int captrefrnc.get cv cap prop...