opencv连通区域分析,opencv 面积筛选
这篇文章主要为大家介绍了开放计算机视觉根据面积筛选连通域学习示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
目录
学习目标:示例代码
学习目标:
对二值图进行分析,设定最大最小面积区间
保留该面积区间内的区域
示例代码
//src为二值图,米纳尔阿,最大面积为面积阈值,目的地为结果图像
void connectionAreaSelect(Mat src,int minArea,int maxArea,Mat dest)
{
垫子标签,统计数据,质心,图像颜色
//连通域计算
int NC comps=connectedComponentsWithStats(
src,//二值图像
标签,
统计数据,
质心
);
//去除过小区域,初始化颜色表
vectorVec3b颜色(nccomps);
colors[0]=Vec3b(0,0,0);//背景像素保持黑色。
for(int I=1;一。nccomps我)
{
colors[i]=Vec3b(rand() % 256,rand() % 256,rand()% 256);
//面积阈值筛选
int holeArea=stats.atint(i,CC _ STAT _ AREA);
if((孔面积minArea) (孔面积最大面积))
{
colors[i]=Vec3b(0,0,0);
}
}
//按照标签值,对不同的连通域进行着色
img _ color=mat :零(src。size()、CV _ 8uc 3);
for(int y=0;y img _ color.rowsy)
{
for(int x=0;x img _ color.colsx)
{
int label=labels.atint(y,x);
CV_Assert(0=标签label=nccomps);
img_color.atVec3b(y,x)=colors[label];
}
}
//统计降噪后的连通区域
无光泽灰色;
cvtColor(img_color,grayImg,COLOR _ bgr 2 gray);
threshold(grayImg,grayImg,1,255,THRESH _ BINARY);
dest=灰色img。clone();
标签。发布();
统计数据。发布();
质心。发布();
img _ color。发布();
灰色img。发布();
}
以上就是开放计算机视觉根据面积筛选连通域学习示例的详细内容,更多关于开放计算机视觉根据面积筛选连通域的资料请关注盛行信息技术软件开发工作室其它相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。