没有合适的资源?快使用搜索试试~ 我知道了~
Opencv提取连通区域轮廓的方法
15 下载量 157 浏览量
2020-12-25
23:48:52
上传
评论
收藏 69KB PDF 举报
温馨提示
试读
2页
本文实例为大家分享了Opencv提取连通区域轮廓的具体代码,供大家参考,具体内容如下 在进行图像分割后,可能需要对感兴趣的目标区域进行提取,比较常用的方法是计算轮廓。 通过轮廓可以获得目标的一些信息: (1)目标位置 (2)目标大小(即面积) (3)目标形状(轮廓矩) 当然,轮廓不一定代表希望目标区域,阈值分割时可能造成一部分信息丢失,因此可以计算轮廓的质心坐标,再进行漫水填充。 程序中有寻找质心+填充,但效果不好,因此就不放填充后的图了。 实验结果: #include "opencv2/imgproc/imgproc.hpp" #include "opencv2/highgui/hig
资源推荐
资源详情
资源评论
Opencv提取连通区域轮廓的方法提取连通区域轮廓的方法
本文实例为大家分享了Opencv提取连通区域轮廓的具体代码,供大家参考,具体内容如下
在进行图像分割后,可能需要对感兴趣的目标区域进行提取,比较常用的方法是计算轮廓。
通过轮廓可以获得目标的一些信息:
(1)目标位置
(2)目标大小(即面积)
(3)目标形状(轮廓矩)
当然,轮廓不一定代表希望目标区域,阈值分割时可能造成一部分信息丢失,因此可以计算轮廓的质心坐标,再进行漫水填
充。
程序中有寻找质心+填充,但效果不好,因此就不放填充后的图了。
实验结果:
#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/highgui/highgui.hpp"
#include <stdio.h>
using namespace cv;
using namespace std;
vector<vector<Point> > contours; //轮廓数组
vector<Point2d> centers; //轮廓质心坐标
vector<vector<Point> >::iterator itr; //轮廓迭代器
vector<Point2d>::iterator itrc; //质心坐标迭代器
vector<vector<Point> > con; //当前轮廓
int main()
{
double area;
double minarea = 100;
double maxarea = 0;
Moments mom; // 轮廓矩
Mat image,gray,edge,dst;
namedWindow("origin");
namedWindow("connected_region");
image = imread("view.jpg");
cvtColor(image, gray, COLOR_BGR2GRAY);
blur(gray, edge, Size(3,3)); //模糊去噪
threshold(edge,edge,200,255,THRESH_BINARY); //二值化处理
/*寻找轮廓*/
findContours( edge, contours,
CV_RETR_EXTERNAL, CV_CHAIN_APPROX_SIMPLE );
itr = contours.begin(); //使用迭代器去除噪声轮廓
while(itr!=contours.end())
资源评论
weixin_38530115
- 粉丝: 9
- 资源: 960
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功