OpenCV 基于轮廓提取的二值图像分析与连通区域标记算法

本文介绍了OpenCV中的轮廓查找函数cv::findContours(),及其辅助函数如arcLength(), boundingRect()等在二值图像分析中的应用。在进阶部分,作者指出函数接口缺乏连通区域标记输出的问题,并分享了自己实现的高效二值图像连通区域标记算法,以便在处理大面积过滤和内轮廓计算时提高性能。" 85986173,1194708,Java实现WGS84到Mercator切片系统转换,"['GIS开发', '坐标转换', '地图服务', 'Java编程', '投影系统']
摘要由CSDN通过智能技术生成

1.      入门

OpenCV 中提供了一个功能强大的在二值图像中查找轮廓的函数cv::findContours(),通过这个函数的输出的轮廓,在结合辅助的函数arcLength(),boundingRect(),contourArea(),minAreaRect(),minEnclosingCircle()等可以完成绝大多数的二值图像分析工作。下面对这个函数使用做简要介绍:

1)  轮廓查找函数有两种接口:

一种是相对简单的接口:

std::vector<std::vector<cv::Point>> contours;

cv::findContours(image, contours, CV_RETR_EXTERNAL,CV_CHAIN_APPOX_NONE);

一种是包含了图像轮廓拓扑结构的接口:

std::vector<std::vector<cv::Point>> contours;

std::vector<cv::Vec4i> hierarchy;

cv::findContours(image, contours, hierarchy, CV_RETR_TREE,CV_CHAIN_APPOX_NONE);


2)  辅助函数功能:

arcLength() 计算轮廓长度

boundingRect() 计算最小矩形

contourArea() 计算轮廓面积

minAreaRect() 计算最小包围盒

minEnclosingCircle() 计算最小圆

convexHull() 计算凸包

fitEllipse() 拟合椭圆

2.      进阶

但以笔者的经验看来,这个

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值