OpenCV中Canny边缘检测

具体的Canny边缘检测原理:
1、消除噪声,使用高斯平滑滤波器卷积降噪
2、计算梯度幅值和方向。利用Sobel滤波器。
得到x和y方向的导数Gx和Gy
计算梯度的幅值和方向:
G = sqrt(Gx^2 + Gy^2)
a = arctan(Gx/Gy)
(梯度的方向近似到四个可能角度之一(一般0,45,90,135))
3、非极大值抑制,这一步排除非边缘像素,仅仅保留一些细线条。
4、滞后阈值:滞后阈值需要两个阈值(高阈值和低阈值)
a.如果某一个像素位置的幅值超过了高阈值,该像素被保留为边缘像素。
b.如果某一像素位置的幅值小于低阈值,该像素被排除。
c.如果幅值在两个阈值之间,该像素仅仅连接到一个高于高阈值的像素时被保留。
Canny推荐的高低阈值比在2:1到3:1之间。

include "opencv2/opencv.hpp"
#include "math.h"using namespace std;
using namespace cv;void CannyThreshold(int,void*);Mat src,dst,src_gray,detected_edges;
int lowThreshold = 2;int main(int argc, char *argv[])
{src = imread("/home/dynamicw/Project/C++_Project/opencvtest/src/lesson01/source/map.png");cvtColor(src,src_gray,CV_RGB2GRAY);dst.create(src.size(),src.type());namedWindow("window",CV_WINDOW_AUTOSIZE);createTrackbar("lowThreshold","window",&lowThreshold,255,CannyThreshold);CannyThreshold(0,0);waitKey(0);return 0;
}void CannyThreshold(int,void*)
{blur(src_gray,detected_edges,Size(3,3));Canny(detected_edges,detected_edges,lowThreshold,3*lowThreshold,5);dst = Scalar::all(0);src.copyTo(dst,detected_edges);imshow("test",dst);
}

OpenCV中Canny边缘检测相关推荐

  1. Python,Opencv cv2.Canny()边缘检测

    Python,Opencv的Canny边缘检测 1. 效果图 2. 源码 参考 这篇博客将介绍Canny边缘检测的概念,并利用cv2.Canny()实现边缘检测: Canny边缘检测是一种流行的边缘检 ...

  2. Python+OpenCV:Canny边缘检测

    Python+OpenCV:Canny边缘检测 理论 Canny边缘检测是目前比较流行的边缘检测算法,它由John F. Canny发明. 1. 这是一个多阶段的算法. 2. 降噪:由于边缘检测容易受 ...

  3. 【图像处理】OpenCV中的边缘检测

    [图像处理]OpenCV中的边缘检测 部分参考来源 边缘检测的算子 边缘定义及类型 图像边缘描述 边缘检测算子类别 一阶微分算子:Roberts .Sobel .Prewitt 二阶微分算子:Lapl ...

  4. 图像处理——基于OpenCV的canny边缘检测

    前言 边缘检测是处理图像里面的比较重要的一个概念,现在的边缘有传统的处理算法,也有加入深度学习的边缘检测算法,这里把我用过的几种边缘检测做个对比. canny算子 1.OpenCV canny() C ...

  5. C/C++ OpenCV之Canny边缘检测

    边缘检查的一般步骤 1.滤波 边缘检查的算法主要是基于图像强度的一阶和二阶倒数,但倒数通常对噪声很敏感,因此必须采用滤波器来 改善与噪声有关的边缘检测器的性能. 2.增强 增强边缘的基础是确定图像各点 ...

  6. Python cv2(Opencv) Canny边缘检测 和 傅里叶变换

    简介: OpenCV是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在Linux.Windows.Android和Mac OS操作系统上.它轻量级而且高效,由一 ...

  7. opencv图片矩形网格边线_图像算法在数值计算中的应用(1):Canny边缘检测算法...

    引言 有限差分方法(FDM)是计算机数值模拟最早采用的方法,至今仍在广泛应用.该方法将求解域划分为差分网格,用有限个网格节点代替连续的求解域.在直角坐标系下,求解域差分网格通常为均匀的矩形,在表达非矩 ...

  8. OpenCV中的图像处理 —— 图像梯度+Canny边缘检测+图像金字塔

    OpenCV中的图像处理 -- 图像梯度+Canny边缘检测+图像金字塔 目录 OpenCV中的图像处理 -- 图像梯度+Canny边缘检测+图像金字塔 1. 图像梯度 1.1 Sobel和Schar ...

  9. OpenCV 笔记(02)— 图像显示、保存、腐蚀、模糊、canny 边缘检测(imread、imshow、namedWindow、imwrite)

    OpenCV 提供两种用户界面选项: 基于原生用户界面的基本界面,适用于 Mac OS X 的 cocoa 或 carbon,以及适用于 Linux 或 Windows 用户界面的 GTK ,这些界面 ...

最新文章

  1. 谷歌上海研发院院长带队出走创业!VC热捧,塞钱都得跑得快
  2. 4.1.2 数据交换方式
  3. TPCAST无线传输模块年底将推出 Oculus Rift 版本
  4. jvm性能调优 - 21案例实战_百万级用户的在线系统如何基于G1垃圾回收器优化性能
  5. 编译Android VNC Server
  6. LeetCode 01. 两数之和
  7. xtrabackup备份还原
  8. java的constructor怎么用,constructor函数 Java中的构造函数Constructor怎么用
  9. C语言基础进阶之 MessageBox()用法简介
  10. BAT机器学习面试1000题系列
  11. CodeForces 1418C Mortal Kombat Tower
  12. 3-5 单链表分段逆转
  13. 【软件】网梭浏览器v2.4.7 思路
  14. 测试开发是什么?为什么现在那么多公司都要招聘测试开发?
  15. Python爬虫——selenium爬取网易云评论并做词云
  16. 2023年华中科技大学新闻传播专硕考研上岸前辈备考经验指导
  17. error while loading shared libraries: librosconsole.so: cannot open shared object file: No such file
  18. Kaggle: Tweet Sentiment Extraction 方法总结 Part 1/2: 常用方法总结
  19. 栅极电阻硬并联与独立栅极电阻
  20. 使用overleaf在线编译latex出现no pdf问题

热门文章

  1. 虚拟专题:知识图谱 | 事件图谱的构建、推理与应用
  2. 作者:朱扬勇(1963-),男,博士,复旦大学计算机科学技术学院教授、学术委员会主任,上海市数据科学重点实验室主任。...
  3. 作者:李翠平, 女, 中国人民大学信息学院教授、 博士生导师。
  4. 【Java】聊天机器人
  5. 【数据库系统】为什么使用SQL而非C/C++的函数库执行数据库查询操作
  6. 【Java】存储单元的设计与模拟
  7. 交替领先的赛跑(洛谷P1568题题解,Java语言描述)
  8. Ansible一键部署CDH
  9. python Exception(异常处理)
  10. C# MVC 自定义ActionResult实现EXCEL下载