函数说明:void Canny( InputArray image, OutputArray edges,double threshold1, double threshold2,int apertureSize = 3, bool L2gradient = false );image:输入图像edges:输出图像threshold1:像素值(最小值)threshold2:像素值(最大值)apertureSize:算法滤波核大小(3*3)L2gradient:是否应用更精确的方式计算
    void findContours( InputArray image, OutputArrayOfArrays contours,OutputArray hierarchy, int mode,int method, Point offset = Point());image:原始图像contours:检测到的轮廓的点的集合hierarchy:记录轮廓之间的关系,四个维度:同级后一个轮廓的序号,同级上一个轮廓的序号,第一个孩子序号,父亲序号mode:轮廓的检测方式RETR_EXTERNAL仅仅检测外圈轮廓RETR_LIST 检测全部轮廓,但是没有层级关系RETR_CCOMP 仅仅两层包含关系,即只有外层和内层,假设有夹层,那么夹层也算外层,只要某个轮廓还包含轮廓,都算外部轮廓RETR_TREE  检测所有的轮廓,并建议非常完整的层级关系RETR_FLOODFILL无描述method:轮廓点的存储方式CHAIN_APPROX_NONE 相邻的轮廓点坐标只相差一个像素,所以是连续轮廓点CHAIN_APPROX_SIMPLE 横,竖对角线段只保存断点数据,比如矩形就只保存四个顶点CHAIN_APPROX_TC89_L1CHAIN_APPROX_TC89_KCOS
    //边缘检测:m_Mat是原始图像,m_Mat_OutPut是用来接收轮廓点的图像Canny(m_Mat,m_Mat_OutPut,100,200);//轮廓发现:扫描图像将轮廓点集全找出来vector<vector<Point>>contours;vector<Vec4i>hierachy;findContours(m_Mat_OutPut,contours,hierachy,RETR_TREE,CHAIN_APPROX_SIMPLE,Point(0,0));//遍历轮廓点:将符合条件的轮廓画到原始图像上for (int i = 0; i < contours.size(); ++i) {double  area = contourArea(contours[i]);//轮廓面积double  length = arcLength(contours[i],false);//轮廓长度if(area<1000&&length<1000){continue;}drawContours(m_Mat,contours,i,Scalar(rand()%255,rand()%255,rand()%255));//}//图像显示QImage img = cvMat_To_Qimage(m_Mat);img = img.scaled(ui->label_3->geometry().width(),ui->label_3->geometry().height(),Qt::KeepAspectRatio,Qt::SmoothTransformation);ui->label_3->setPixmap(QPixmap::fromImage(img));

轮廓-Canny边缘检测(彩色图)相关推荐

  1. C语言数字图像处理----3.2 图像边缘检测之Canny边缘检测算法

    本篇将介绍图像边缘检测中的Canny边缘检测,这是传统边缘检测学习中的必学内容,也是图像算法面试中的常见问题,本文将教会初学者如何在理解算法的基础之上,通过C语言来实现Canny边缘检测算法,从而做到 ...

  2. Open cv的Canny边缘检测和轮廓检测例子

    # -*- coding:utf-8 -*-import cv2 image = cv2.imread("images/000.jpg") cv2.imshow("en& ...

  3. 【OpenCV-Python】——边缘和轮廓Laplacian/Sobel/Canny边缘检测查找/绘制轮廓及轮廓特征霍夫直线/圆变换

    目录 前言: 1.边缘检测 1.1 Laplacian边缘检测 1.2 Sobel边缘检测 1.3 Canny边缘检测 2.图像轮廓 2.1 查找轮廓 2.2 绘制轮廓 2.3 轮廓特征 3.霍夫变换 ...

  4. 轮廓-threshold边缘检测(灰度图)

    注:使用彩色图测试结果失败了,灰度图就可以 double threshold( InputArray src, OutputArray dst,double thresh, double maxval ...

  5. OpenCV:用C++绘制彩色铅笔画(Canny边缘检测算法)

    之前写的博客感觉太严肃了,学习应该是一件很开心,很有成就感的事情,所以我觉得我们可以利用所学知识,做一点有趣的事情. 在这里,我们需要用到的知识是Canny边缘检测算法.也就是通过边缘提取,外加一点小 ...

  6. Canny边缘检测算法原理及其VC实现详解(二)

    3.  Canny算法的实现流程 由于本文主要目的在于学习和实现算法,而对于图像读取.视频获取等内容不进行阐述.因此选用OpenCV算法库作为其他功能的实现途径(关于OpenCV的使用,作者将另文表述 ...

  7. Canny边缘检测及C++实现(转载)

    版权声明:本文为博主原创文章,转载请注明出处. https://blog.csdn.net/dcrmg/article/details/52344902 Canny边缘检测算法是澳大利亚科学家John ...

  8. Canny边缘检测及C++实现

    Canny边缘检测算法是澳大利亚科学家John F. Canny在1986年提出来的,不得不提一下的是当年John Canny本人才28岁!到今天已经30年过去了,Canny算法仍然是图像边缘检测算法 ...

  9. Canny边缘检测算法原理及其VC实现详解(一)

    原文地址:http://blog.csdn.net/likezhaobin/article/details/6892176 图象的边缘是指图象局部区域亮度变化显著的部分,该区域的灰度剖面一般可以看作是 ...

最新文章

  1. 后缀数组--处理字符串的利器
  2. 4.11-固件映像包 (FIP)
  3. 河北省往届高考成绩查询2021,2021河北高考成绩查询时间 高考成绩查询入口
  4. LeetCode 7 整数反转
  5. 有钱了该不该提前还清房贷?
  6. IOC操作Bean管理XML方式(bean的作用域)
  7. PXC 安装 for 5.7
  8. JAVA隐藏鼠标的方法
  9. 计算机辅助设计简称为才,计算机辅助设计知识分享.ppt
  10. 画法几何与工程制图2
  11. matlab绘图空间曲线,matlab空间曲线绘图
  12. 计算机WIN7安装,教您win7旗舰版安装教程
  13. 牵手·············
  14. html页面中访问外站资源的时候协议的问题
  15. 树莓派安装Windows
  16. 人工神经网络(ANN)
  17. Linux 操作系统
  18. activiti入门系列文章9 - 委派与转办
  19. 下一个好莱坞巨头——计算机
  20. 上手基金,看这一篇就够了

热门文章

  1. java memory access_Jna报Invalid memory access错误是怎么回事?
  2. CSDN技术网摘使用指南
  3. 【简单】果果的ATM取款机
  4. 闺蜜要抛弃凤凰男男友,我真替他不值
  5. FastDFS分布式文件系统使用手册
  6. 傅里叶变换尺度变换性质_傅里叶变换的时移特性和尺度变换特性
  7. 关于nginx防止ddos和cc攻击方法(转)
  8. 手工AD Safe去广告教程
  9. SAR目标检测数据集汇总
  10. java.beans.transient_@Transient注解的使用(不被序列化和作为临时变量存储)