OpenCV 应用fitEllipse函数一种异常问题分析
来源:互联网 发布:安东尼·霍普金斯 知乎 编辑:程序博客网 时间:2024/06/05 07:19
想要求得一个图像中轮廓的椭圆拟合 代码如下:
for(int k = 0; k < (int)threecontours.size(); k++) { RotatedRect rRect = fitEllipse(threecontours.at(k)); double majorAxis = rRect.size.height > rRect.size.width ? rRect.size.height : rRect.size.width;double minorAxis = rRect.size.height > rRect.size.width ? rRect.size.width : rRect.size.height;float rate = majorAxis/minorAxis; if (rate<2) //滤除长短轴小于2的轮廓 { drawContours(g_EllipseFilter, threecontours, k, Scalar(0), CV_FILLED);}}
处理部分图片时发现异常:
调试程序时发现:某个轮廓内的像素点个数只有四个
说明fitEllipse函数要求轮廓的像素点个数大于等于5个,可以将代码修改为:
for(int k = 0; k < (int)threecontours.size(); k++) //查找轮廓 {if (int(threecontours.at(k).size()) <=6){drawContours(g_EllipseFilter, threecontours, k, Scalar(0), CV_FILLED);}else{RotatedRect rRect = fitEllipse(threecontours.at(k)); double majorAxis = rRect.size.height > rRect.size.width ? rRect.size.height : rRect.size.width;double minorAxis = rRect.size.height > rRect.size.width ? rRect.size.width : rRect.size.height;float rate = majorAxis/minorAxis; if (rate<2) //滤除长短轴小于2的轮廓 { drawContours(g_EllipseFilter, threecontours, k, Scalar(0), CV_FILLED); }}}
2 0
- OpenCV 应用fitEllipse函数一种异常问题分析
- fitEllipse函数
- OpenCV—椭圆拟合fitEllipse
- 应用写库异常问题分析
- opencv 一种聚焦评价函数
- OpenCV3.0 Examples学习笔记(9)-fitellipse.cpp-fitEllipse函数实现椭圆拟合
- OpencV使用fitEllipse拟合椭圆后,获取椭圆参数
- opencv3用椭圆拟合二维点集-fitEllipse函数
- Android异常问题分析
- Android 异常问题分析
- Android 异常问题分析
- Android 异常问题分析
- opencv轮廓检测之椭圆检测-----算法篇(11)--fitEllipse算法解释
- OpenCV的Gabor函数应用
- OpenCV中CalcOpticalFlowFarneback()函数分析
- OpenCV中CalcOpticalFlowFarneback()函数分析
- 一种普通母函数的修改应用
- 自定义UDF函数应用异常
- 带你一起分析cut the rope(切绳子游戏)中绳子的制作方法
- 常用正则表达式列举
- BZOJ 3932 [CQOI2015] 任务查询系统 可持久化线段树
- 【NOIP 模拟赛】平均数 涂色游戏 序列题解
- 平衡二叉树总结二:avl树
- OpenCV 应用fitEllipse函数一种异常问题分析
- Linux日常使用命令
- 冒泡排序(笔记)0.0.1
- [nodeJS]Node.js到底是什么?
- PAT 乙级 1005
- 欢迎使用CSDN-markdown编辑器
- 变量、常量、标识符、数据类型
- 开发眼中的一些前端交互优化
- C 判断单链表是否有环