openCV找连通成分并计算相关轮廓特征
2008-09-16 23:22
309 查看
以下function用來取得一個影像的連通成分(connected component),將影像labeling以後,具有相同label的pixel即為同一個連通成分。透過對連通成分的分析,我們可以了解一張圖片的物件組成。
此function輸入一張經過二值化(只有黑白)的影像,找到連通成分以後會用紅色矩形框起來。
areaThreshold用來篩選連通成分,如果連通成分的面積小於areaThreshold表示此連通成分是雜訊,可以忽略。
CvMemStorage * storage = cvCreateMemStorage(0);
CvSeq * contour = 0;
cvFindContours( pImg, storage, &contour, sizeof(CvContour),
CV_RETR_EXTERNAL, CV_CHAIN_APPROX_NONE , cvPoint(0,0));
int i=0;
for(;contour;contour = contour->h_next)
{
CvRect aRect = cvBoundingRect( contour, 0 );
if((aRect.width*aRect.height)>areaThreshold)
{
cvRectangle( pImg, cvPoint(tmpRect.Left,tmpRect.Top),cvPoint((tmpRect.Right),
(tmpRect.Bottom)),CV_RGB(255,0,0), 3 );
}
}
}
上面程式中的aRect 表示的就是一個連通成分的矩形邊界。
找到連通成分以後,可以參考OpenCV中文網站的結構分析,
這一頁說明了一些計算輪廓特徵的function,
像是ContourArea用來計算輪廓面積,
ArcLength用來計算輪廓的周長,
CalcPGH用來計算輪廓的幾何直方圖。
透過對輪廓的分析,我們可以對影像的組成物件進行辨識,並進而透過組成的物件來猜測這張影像的場景或人物。
此function輸入一張經過二值化(只有黑白)的影像,找到連通成分以後會用紅色矩形框起來。
areaThreshold用來篩選連通成分,如果連通成分的面積小於areaThreshold表示此連通成分是雜訊,可以忽略。
void GetLabeling(IplImage *pImg,int areaThreshold) {
CvMemStorage * storage = cvCreateMemStorage(0);
CvSeq * contour = 0;
cvFindContours( pImg, storage, &contour, sizeof(CvContour),
CV_RETR_EXTERNAL, CV_CHAIN_APPROX_NONE , cvPoint(0,0));
int i=0;
for(;contour;contour = contour->h_next)
{
CvRect aRect = cvBoundingRect( contour, 0 );
if((aRect.width*aRect.height)>areaThreshold)
{
cvRectangle( pImg, cvPoint(tmpRect.Left,tmpRect.Top),cvPoint((tmpRect.Right),
(tmpRect.Bottom)),CV_RGB(255,0,0), 3 );
}
}
}
上面程式中的aRect 表示的就是一個連通成分的矩形邊界。
找到連通成分以後,可以參考OpenCV中文網站的結構分析,
這一頁說明了一些計算輪廓特徵的function,
像是ContourArea用來計算輪廓面積,
ArcLength用來計算輪廓的周長,
CalcPGH用來計算輪廓的幾何直方圖。
透過對輪廓的分析,我們可以對影像的組成物件進行辨識,並進而透過組成的物件來猜測這張影像的場景或人物。
相关文章推荐
- 【opencv学习之三十六】轮廓特征应用:计算点与轮廓距离
- OpenCV findContours 轮廓检索函数及轮廓特征计算
- OpenCV轮廓检测,计算物体旋转角度
- opencv 连通域轮廓处理的一点记录
- openCV中的特征点检测、描述子计算、特征匹配的一些类
- opencv2 学习第13天 轮廓特征及其描述子
- 特征点匹配 opencv系列函数解析 追踪相关(一)
- Opencv2系列学习笔记10(提取连通区域轮廓)
- 【OpenCV学习笔记】三十一、轮廓特征属性及应用(八)——颜色物体识别与跟踪
- opencv-计算原始LBP特征
- OpenCV计算连通区域数目与最大连通区域并标示出
- 【OpenCV学习笔记】二十七、轮廓特征属性及应用(四)——正外接矩形
- opencv之轮廓特征属性及应用
- 【OpenCV学习笔记】三十、轮廓特征属性及应用(七)—位置关系及轮廓匹配
- OpenCv 关于矩阵的相关计算函数
- opencv(25)---轮廓特征属性及应用之矩
- opencv_tutorial_code学习——pointPolygonTest计算点到轮廓的距离
- OpenCV轮廓检测,计算物体旋转角度
- opencv轮廓特征1
- opencv3计算图像中轮廓的长度