OpenCV中文网站

 找回密码
 立即注册
搜索
热搜: 安装 配置
查看: 24580|回复: 14

轮廓面积求助

[复制链接]
发表于 2013-6-26 15:13:31 | 显示全部楼层 |阅读模式
各位大侠,我用findcontours得到连通域,然后求面积,但是面积算出来和实际大小不符合,实际大小应该是20000+,算出来是114,请大侠帮忙看看。谢谢。
源码:

findContours( canny_output, contours, hierarchy, CV_RETR_TREE, CV_CHAIN_APPROX_SIMPLE, Point(0, 0) );
double area = 0;
size_t i = 0;
for(i = 0; i< contours.size(); i++)
{
      area = fabs(contourArea(Mat(contours,true), true));
      printf(&quot;%d contour area = %f\n&quot;, i, area);
}
回复

使用道具 举报

发表于 2013-6-26 18:10:01 | 显示全部楼层

轮廓面积求助

114是一个小孔的面积  说白了你的轮廓图像中不止你需要的那个轮廓
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-6-27 08:53:36 | 显示全部楼层

轮廓面积求助

从打印出来的轮廓中的点来看,包括了2个这样的轮廓,会不会是实际上算的面积是两个轮廓的差值?
请问各位大虾怎么破?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-6-27 08:55:59 | 显示全部楼层

轮廓面积求助

图中的点是步长为30的轮廓中的点
即第0个,第30个。。。
回复 支持 反对

使用道具 举报

发表于 2013-7-16 10:13:10 | 显示全部楼层

轮廓面积求助

这个应该是你轮廓中周长最长的轮廓吧,先找到它再统计吧
回复 支持 反对

使用道具 举报

发表于 2013-7-17 15:49:22 | 显示全部楼层

轮廓面积求助

函数找到了很多轮廓,你需要的只是最外面的轮廓,说穿了,你找到很多轮廓,但是你没有找到你想象中的轮廓,opencv找轮廓用的是连码的算法,其实本质并不复杂,你可以尝试写下,会又更深的体会。
回复 支持 反对

使用道具 举报

发表于 2013-11-15 19:34:45 | 显示全部楼层
Hu矩的计算,轮廓的选择是每一个轮廓,还是整个轮廓?我把所有轮廓放在一块计算Hu矩发现,旋转后的匹配度没有达到50%。如果单独计算每个轮廓的Hu矩,原图与对比图的每个轮廓也不一定是一一对应关系,怎么观察匹配?是要找到面积最大,或者是周长最大的轮廓吗?面积最大或是周长最大能表示图像的信息吗?
回复 支持 反对

使用道具 举报

发表于 2014-3-17 22:59:26 | 显示全部楼层
HU矩是针对单个轮廓的,即一幅图片中有很多个轮廓,各轮廓都有自己的矩。
回复 支持 反对

使用道具 举报

发表于 2014-9-30 05:39:50 | 显示全部楼层
求出的轮廓面积的单位是什么
回复 支持 反对

使用道具 举报

发表于 2018-12-14 17:07:47 | 显示全部楼层
同样遇到这个问题,我把所有的轮廓面积值相加也达不到实际的面积值,不知道楼主解决此问题没,能否指点一下
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|OpenCV中文网站

GMT+8, 2024-4-26 12:16 , Processed in 0.014979 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表