去干扰轮廓提取

要求:
提取目标轮廓
排除干扰轮廓
绘制轮廓

遍历器的使用
vector<vector<Point>>::iterator itr;
itr=contours.begin();

area=contourArea(*itr)

部分代码展示:

Mat drawing = Mat::zeros(src.rows,src.cols,CV_8UC3);

vector<vector<Point>>contours;
findContours(canny_src, contours, RETR_EXTERNAL, CHAIN_APPROX_SIMPLE, Point(0, 0));
printf("处理前轮廓数 %d", contours.size());


vector<vector<Point>>::iterator itr;//设置遍历器
itr = contours.begin();

double Area = 0.0;
while (itr!=contours.end())
{
    Area = contourArea(*itr);
    if (Area<100)
    {
        itr = contours.erase(itr);
    }
    else
    {
        itr++;
    }
}
printf("筛选后的轮廓数%d\n", contours.size());
for (int i=0;i<contours.size();i++)
{
        drawContours(drawing,contours,i,Scalar(255,255,255));
}
imshow("drawing",drawing);

效果展示:


轮廓筛选后的效果图
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你...
    hw1212阅读 14,086评论 2 59
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 179,308评论 25 708
  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AI阅读 16,224评论 3 119
  • 深夜, 你的心事, 就是你的咖啡, 是免费的, 但不是你想要的。
    戚布尔阅读 256评论 0 0
  • 2017年9月5日种种子 何德胜第36天 我今天不是为了我一个人而闻思修行,而是为了一切如母有情众生,早日离苦得乐...
    何德胜觉悟阅读 266评论 0 4

友情链接更多精彩内容