Canny边缘检测算法以Canny的名字命名,其中Canny的目标是找到一个最优的边缘检测算法,其有三种衡量标准:

  1. 低错误率:标识出尽可能多的实际边缘,同时尽可能的减少噪声产生的误报
  2. 高定位性:标识出的边缘要与图像中的图像中的实际边缘尽可能接近
  3. 最小响应:图像中的边缘只能标识一次,并且可能存在的图像噪声不应标识为边缘
//Canny
int g_nCannySize;
int g_nCannyThresHoldValue;
int g_nSobelValue;
Mat g_srcImage,g_dstImage,g_grayImage,g_edgeImage;
void on_ChangeThresHoldAndCannySize(int,void*)
{
if(g_nSobelValue>2 && g_nSobelValue%2==1)
{
blur(g_grayImage,g_edgeImage,Size(g_nCannySize,g_nCannySize));
Canny(g_edgeImage,g_edgeImage,1,g_nCannyThresHoldValue,3);
g_dstImage=Scalar::all(0);
g_srcImage.copyTo(g_dstImage,g_edgeImage);
imshow("Canny图",g_dstImage);
}
}
void Test_Canny()
{
g_srcImage=imread("D:\\OpenCV Projects\\OpenCV_Test_Image\\7.jpg");
g_dstImage.create(g_srcImage.size(),g_srcImage.type());
cvtColor(g_srcImage,g_grayImage,COLOR_BGR2GRAY);//得到灰度图
namedWindow("原图");
namedWindow("Canny图");
g_nCannySize=1;
g_nCannyThresHoldValue=3;
//g_nSobelValue=3;
createTrackbar("size","Canny图",&g_nCannySize,30,on_ChangeThresHoldAndCannySize);
//createTrackbar("sobel","Canny图",&g_nSobelValue,9,on_ChangeThresHoldAndCannySize);
createTrackbar("value","Canny图",&g_nCannyThresHoldValue,80,on_ChangeThresHoldAndCannySize);
on_ChangeThresHoldAndCannySize(g_nCannySize,0);
on_ChangeThresHoldAndCannySize(g_nCannyThresHoldValue,0);
//on_ChangeThresHoldAndCannySize(g_nSobelValue,0);
imshow("原图",g_srcImage);
}

18.Canny边缘检测的更多相关文章

  1. Canny边缘检测

    1.Canny边缘检测基本原理      (1)图象边缘检测必须满足两个条件:一能有效地抑制噪声:二必须尽量精确确定边缘的位置.      (2)根据对信噪比与定位乘积进行测度,得到最优化逼近算子.这 ...

  2. OpenCV图像Canny边缘检测

    Canny边缘检测 图像的边缘检测的原理是检测出图像中所有灰度值变化较大的点,而且这些点连接起来就构成了若干线条,这些线条就可以称为图像的边缘函数原型:     void cvCanny(       ...

  3. OpenCV: Canny边缘检测算法原理及其VC实现详解(转载)

    原文地址:http://blog.csdn.net/likezhaobin/article/details/6892176 原文地址:http://blog.csdn.net/likezhaobin/ ...

  4. 从视频文件中读入数据-->将数据转换为灰度图-->对图像做canny边缘检测-->将这三个结构显示在一个图像中

    //从视频文件中读入数据-->将数据转换为灰度图-->对图像做canny边缘检测-->将这三个结构显示在一个图像中 //作者:sandy //时间:2015-10-10 #inclu ...

  5. [转载+原创]Emgu CV on C# (六) —— Emgu CV on Canny边缘检测

    Canny边缘检测也是一种边缘检测方法,本文介绍了Canny边缘检测的函数及其使用方法,并利用emgucv方法将轮廓检测解算的结果与原文进行比较. 图像的边缘检测的原理是检测出图像中所有灰度值变化较大 ...

  6. ###Canny边缘检测算子

    开源中国. #@date: 2014-06-20 #@author: gerui #@email: forgerui@gmail.com 一.一阶微分边缘算子 1. 一阶微分边缘检测算子也称梯度边缘算 ...

  7. openCV(四)---Canny边缘检测

    图像的边缘检测的原理是检测出图像中所有灰度值变化较大的点,而且这些点连接起来就构成了若干线条,这些线条就可以称为图像的边缘. 直接上代码,函数简介都在代码注释中 //canny边缘检测 -(void) ...

  8. Canny边缘检测算法的实现

    图像边缘信息主要集中在高频段,通常说图像锐化或检测边缘,实质就是高频滤波.我们知道微分运算是求信号的变化率,具有加强高频分量的作用.在空域运算中来说,对图像的锐化就是计算微分.由于数字图像的离散信号, ...

  9. 一些关于Canny边缘检测算法的改进

    传统的Canny边缘检测算法是一种有效而又相对简单的算法,可以得到很好的结果(可以参考上一篇Canny边缘检测算法的实现).但是Canny算法本身也有一些缺陷,可以有改进的地方. 1. Canny边缘 ...

随机推荐

  1. 使用VSCode调试Jest

    0. 环境 Node版本:8.12.0 操作系统:windows10 1. 配置launch.json { "version": "0.2.0", " ...

  2. vue-router的简单理解

    Vue-router原理了解一下: 找到一篇文章,分析的很透彻 从vue-router看前端路由的两种实现,文章写的很好,看完这篇文章 ➕ 看源码应该可以理解,这里根据我浅显的理解概括一下: vue- ...

  3. Android 自定义类型文件与程序关联

    0x01 功能 实现在其他应用中打开某个后缀名的文件 可以直接跳转到本应用中的某个activity进行处理 0x01 实现 首先创建一个activity ,然后在manifest里对该activity ...

  4. 下载 youtube 油管的视频

    以前也曾经用个工具下过,好像是浏览器插件. 但是到底是什么也记不起来了,删没删除,怎么删除的,全都没有记忆了. 唉,无论多么小的事,只有记到本子或者网络上,才能记得住啊. 所以,这回发现了 youtu ...

  5. jmeter的安装和配置

    jmeter环境配置 Java 8 安装 正常安装,一路默认就好,记住安装路径,配置环境变量时用得到.默认安装路径:C:\Program Files\Java\jdk1.8.0_91. 安装好之后会有 ...

  6. 【Idea】IntelliJ不停地updating indices的解决办法

  7. Centos7 防火墙frewalld规则设置

    配置firewalld-cmd 查看版本: firewall-cmd --version 查看帮助: firewall-cmd --help 显示状态: firewall-cmd --state 查看 ...

  8. 20190321xlVBA_明细信息表汇总成数据表

    刚开始能把代码敲得行云流水的时候,写代码是种乐趣.有了功利目的之后,重复的工作写多几次,厌烦的情绪四处弥漫. 去年八月份正好写了一回,还能支持控件,在此备忘. Public Sub Informati ...

  9. Confluence 6 在升级之前

    在这个指南中,我们将会与你一同对最新的 Confluence 站点在 Windows 或者 Linux 平台进行安装和更新. 如果你的 Confluence 安装实例是当前的许可证的话,那么对 Con ...

  10. linux基础命令touch

    touch /home/ceshi    创建文件命令 touch    /home/ceshi1 ceshi2    同时创建两个文件. cat   显示文件内容(短的文件) -n  带行号 tac ...