问题:cv2.findContours找到所有的轮廓之后,想取出包含面积最大的轮廓,用cv2.contourArea算一下,但是得到的结果跟实际差别相当大,最大轮廓面积的计算成很小的一个值,而其中一个不太起眼的区域被计算得倒最大的面积。

findContours() 提取轮廓, contourArea() 计算轮廓面积。

ContourArea计算轮廓的面积使用格林公式。格林公式是什么?这不重要。ContourArea()求得得面积居然比真实面积还要小。这又是怎么回事呢?

重点

原来ContourArea()是取连通域边界像素中心点,连接起来,成为一个轮廓,导致一周得边界像素点丢失,即求得得面积比真实得面积少了一圈。

比如下图,真实面积4*4=16,而ContourArea()则只是算红线内得面积,只有3*3=9。

因此,countArea() 函数也会 ”有中去无“,视而不见,算出来的轮廓面积会出现0。

有轮廓,但是面积为0。

比如有的轮廓厚度只有两像素,都是边缘线,那计算出来的面积就等于0。

参考:AI大道理

整理不易,欢迎一键三连!!!

cv2.contourArea函数详解相关推荐

  1. OpenCV-Python图像的减法运算cv2.subtract函数详解以及和矩阵减法的差异对比

    ☞ ░ 前往老猿Python博客 https://blog.csdn.net/LaoYuanPython ░ 一.概述 在<OpenCV-Python图像的加法运算cv2.add函数详解> ...

  2. cv2.fitEllipse函数详解:ellipse参数并根据参数计算出椭圆焦点坐标

    cv2.fitEllipse函数详解:ellipse参数并根据参数计算出椭圆焦点坐标 最近因为用到了这个函数,所以就趁着这个机会,好好顺顺,做下记录. ellipse = cv2.fitEllipse ...

  3. python中减法运算函数_OpenCV-Python图像的减法运算cv2.subtract函数详解以及和矩阵减...

    OpenCV-Python图像的减法运算cv2.subtract函数详解以及和矩阵减 OpenCV-Python图像的减法运算cv2.subtract函数详解以及和矩阵减法的差异对比 ? ? 前往老猿 ...

  4. opencv学习笔记五:cv2.warpAffine()函数详解

    cv2.warpAffine()函数主要是利用变换矩阵M对图像进行如旋转.仿射.平移等变换,只需要我们提供一个2*3的变换矩阵M,就可以对图像进行变换.它一般是和cv2.getRotationMatr ...

  5. cv2.minAreaRect函数详解

    一.cv2.minAreaRect函数作⽤:返回不规则四边形的最⼩外接矩形 二.opencv4.2版本: 1.输入:多边形轮廓形点 2.输出:最⼩外接矩形的中⼼点坐标x,y,宽⾼w,h,⾓度anlge ...

  6. opencv 二值化 python_opencv-python图像二值化函数cv2.threshold函数详解及参数cv2.THRESH_OTSU使用...

    cv2.threshold()函数的作用是将一幅灰度图二值化,基本用法如下: #ret:暂时就认为是设定的thresh阈值,mask:二值化的图像 ret,mask = cv2.threshold(i ...

  7. opencv 二值化 matlab,opencv-python图像二值化函数cv2.threshold函数详解及参数cv2.THRESH...

    cv2.threshold()函数的作用是将一幅灰度图二值化,基本用法如下: #ret:暂时就认为是设定的thresh阈值,mask:二值化的图像 ret,mask = cv2.threshold(i ...

  8. OpenCV-Python图像的加法运算cv2.add函数详解

    ☞ ░ 前往老猿Python博文目录 ░ 一.加法概述 图像加法主要有两种用途,一种是可用于减少甚至消除图像采集中混入的噪声,由于图像各点的采集噪声是互不相关的,且噪声具有零均值的统计特性,因此可以对 ...

  9. OpenCV-Python图像融合cv2.addWeighted权重加法函数详解

    ☞ ░ 前往老猿Python博客 https://blog.csdn.net/LaoYuanPython ░ 一.概述 在<OpenCV-Python图像的加法运算cv2.add函数详解> ...

最新文章

  1. typedef的用法总结
  2. gradle使用maven_使用Gradle – 2019版从Travis可靠发布到Maven Central
  3. 使用Bootstrap开发网站首页
  4. GNOME如何使用Git
  5. 关于tomcat 开启gc日志后每隔1小时full gc的问题
  6. 昨天我遇到一个令我敬佩的人
  7. xulrunner下载连接
  8. Atitit mq读取队列信息 范例 目录 1.1. 读取原理与主要流程 1 1.2. 范例项目 C:\0wkspc\MqDemoPrj 1 1.3. 范例代码 1 1.1.读取原理与主要流程
  9. blender烘焙法线贴图
  10. Oracle JDK商用费用分析
  11. 一个完全免费的在线文字云网站
  12. 如何设计过压保护电路?
  13. Log4j2 日志 依赖 jar包 缺失 导致启动报错 解决方法
  14. Apollo星火计划学习笔记第四讲2——高精地图定位模块
  15. 深度学习 - 38.Gensim Word2Vec 实践
  16. spring的继承与依赖
  17. iOS应用安全读书笔记之重要的属性文件
  18. Android之高仿微信“开门动画”(六)
  19. ISO/TS16949-99标准的介绍(转载)
  20. 怎样开启服务器网页压缩,网站怎么启动GZIP压缩方法(DZ,WP网站开启)

热门文章

  1. 如何为3CX系统配置WatchGuard XTM防火墙
  2. vue-trtc多人视频开发(从零开始)-有手就行篇-最详细讲解
  3. 格式化————format
  4. JDK下载以及安装步骤
  5. CSS3通过3D变换立体旋转相册
  6. DTO DAO VO BO PO POJO区别
  7. 财经观察:“脱欧”不确定性持续拖累英国经济
  8. 专访富数科技吴海斌:隐私计算头部效应明显,2022年落地才是硬道理
  9. 贝叶斯优化: 一种更好的超参数调优方式
  10. 数据结构与算法是什么?