opencv3计算图像中轮廓的面积http://blog.csdn.net/qq_23880193/article/details/49256999

http://blog.csdn.net/davebobo/article/details/52583167

#include<iostream>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include<imgproc/imgproc.hpp>    using namespace std;
using namespace cv;  int main(){  Mat image = cvLoadImage("group.jpg");  Mat grayImage;  cvtColor(image, grayImage, CV_BGR2GRAY);  //转换为二值图    Mat binaryImage;  threshold(grayImage, binaryImage, 90, 255, CV_THRESH_BINARY);  //二值图 这里进行了像素反转,因为一般我们用255白色表示前景(物体),用0黑色表示背景    Mat reverseBinaryImage;  bitwise_not(binaryImage, reverseBinaryImage);  vector <vector<Point>>contours;  findContours(reverseBinaryImage,  contours,   //轮廓的数组  CV_RETR_EXTERNAL,   //获取外轮廓  CV_CHAIN_APPROX_NONE);  //获取每个轮廓的每个像素  //在白色图像上绘制黑色轮廓  Mat result(reverseBinaryImage.size(), CV_8U, Scalar(255));  drawContours(result, contours,  -1, //绘制所有轮廓  Scalar(0),  //颜色为黑色  2); //轮廓线的绘制宽度为2  namedWindow("contours");  imshow("contours", result);  //移除过长或过短的轮廓  int cmin = 100; //最小轮廓长度  int cmax = 1000;    //最大轮廓  vector<vector<Point>>::const_iterator itc = contours.begin();  while (itc!=contours.end())  {  if (itc->size() < cmin || itc->size() > cmax)  itc = contours.erase(itc);  else  ++itc;  }  //在白色图像上绘制黑色轮廓  Mat result_erase(binaryImage.size(), CV_8U, Scalar(255));  drawContours(result_erase, contours,  -1, //绘制所有轮廓  Scalar(0),  //颜色为黑色  2); //轮廓线的绘制宽度为2  namedWindow("contours_erase");  imshow("contours_erase", result_erase);  waitKey(0);  return 0;
}  

获取最大轮廓 opencv相关推荐

  1. 二值mask图像 + RGB原图 生成可视化分割结果; 从二值mask获取分割轮廓点

    可视化分割结果: import cv2 import numpy as np from tqdm import tqdm from PIL import Image from pathlib impo ...

  2. java读取dcm影像文件_使用dcmtk库读取.dcm文件并获取信息+使用OpenCV显示图像

    借助VS2013和OpenCV的绘图功能,在工程DICOMReader.sln中实现了对单张.dcm图像的读取与显示,以下是详细步骤. 前期准备工作 编译器:VS2013 库:dcmtk-3.6.0( ...

  3. c语言编程获取摄像头图像,OpenCV 获取摄像头图像数据并显示

    下面是编程之家 jb51.cc 通过网络收集整理的代码片段. 编程之家小编现在分享给大家,也给大家做个参考. 用摄像头来获取数据的应用其实并不算太多,最近刚刚好用到,查了下用OpenCV来实现非常方便 ...

  4. 06- OpenCV查找图像轮廓 (OpenCV系列) (机器视觉)

    知识重点 灰度图转换:  gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) 二值化: 返回两个东西,一个阈值, 一个是二值化的图:  thresh, binar ...

  5. 【Harvest源码分析】获取F0轮廓

    频率36.629HZ 频率44.321HZ 频率50.037HZ 频率54.566HZ 频率60.545HZ 频率66.024HZ 频率74.539HZ 频率84.152HZ 频率95.005HZ 频 ...

  6. python中cv2提取图像rgb值,获取RGB值opencv python

    I am loading an image into python e.g. image = cv2.imread("new_image.jpg") How can i accce ...

  7. OpenCV+python:轮廓发现与对象测量

    1,轮廓发现 当通过阈值分割提取到图像中的目标物体后,就需要通过边缘检测来提取目标物体的轮廓,使用这两种方法基本能够确定物体的边缘或者前景.接下来,通常需要做的是拟合这些边缘的前景,如拟合出包含前景或 ...

  8. 【opencv】(6) 图像轮廓处理

    各位同学好,今天和大家分享一下opencv中如何获取图像轮廓,以及对轮廓的一些其他操作.内容有: (1)轮廓检测:cv2.findContours():(2)轮廓绘制:cv2.drawContours ...

  9. 基于OpenCV修复表格缺失的轮廓--如何识别和修复表格识别中的虚线

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达推荐阅读 42个pycharm使用技巧,瞬间从黑铁变王者Google ...

最新文章

  1. 在Ubuntu中使用远程桌面
  2. 田志刚:写文章的两个好处
  3. 访问控制允许原始多个域?
  4. 30岁自学python找工作-程序员自学Python开发,20到30岁几乎决定了你的未来!
  5. Django的外键创建
  6. python中cumsum_在python里“np.cumsum”这个命令是干什么的?怎么使用?
  7. 学成在线--0.项目概述
  8. Linux实用代码--文件系统操作
  9. Mybatis高级应用 整合Ehcache
  10. Q81:“三角形网格”之“PLY文件”
  11. S3C2440裸机------异常与中断__按键中断程序示例
  12. java图片转pdf_java使用itextpdf将图片转换成pdf的简单实例 | 学步园
  13. 计网——计算机网络和互联网
  14. cpu load是什么?
  15. 软件设计——云原生12要素
  16. 【随笔记】Deepin20系统更换fish,替代bash
  17. java和dba哪个好_你的性格适合做DBA吗?面试者必看
  18. 单片机毕设 stm32人体健康状态检测系统(项目开源)
  19. 在PRESS.one这片蛮荒沃土上,我们都是拓荒者
  20. 此起彼伏 竞相盛放?!!

热门文章

  1. A folder failed to be moved——Android SDK的安装问题解决方案
  2. DNS协议详解及报文格式分析
  3. 支付宝的高可用与容灾架构演进
  4. 关于VR技术和未来发展---转
  5. ReflectionToStringBuilder
  6. 漫说单例模式--宝宝成长记 你真的了解了吗?
  7. java常见证书类型和密钥库类型
  8. Mybatis-Plus自动填充的实现示例
  9. 灰度图像--图像增强 锐化基础
  10. 高德地图横屏不显示服务器,高德地图不能横屏!