C/C++ OpenCV之Canny边缘检测
边缘检查的一般步骤
1.滤波
边缘检查的算法主要是基于图像强度的一阶和二阶倒数,但倒数通常对噪声很敏感,因此必须采用滤波器来
改善与噪声有关的边缘检测器的性能。
2.增强
增强边缘的基础是确定图像各点的领域强度的变化值。增强算法可以将图像灰度点领域强度值有显著变化的点
凸显出来
3.检测
常用的方法是通过阈值化方法来检测
Canny函数
void Canny(
inputArray image,
outputArray edges,
double thresholdint1,
double threshold2,
int apertursSize=3,
bool L2gradient=false
)
通常第三个参数和第四个参数的比值是3:1和2:1
下面是代码:
#include <opencv2/opencv.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>using namespace cv;int main()
{Mat src = imread("1.jpg");Mat src1 = src;Mat out;namedWindow("原图");imshow("原图", src);//方法一3以下的版本Canny(src, out, 150, 100);namedWindow("方法一的效果图");imshow("方法一的效果图",out);//方法二3以上的版本Mat dst, edge, gray;//创建一个与src1一样的矩阵dst.create(src1.size(), src1.type());//将原图像转为灰度cvtColor(src1, gray, COLOR_RGB2GRAY);//滤波(降噪)blur(gray, edge, Size(3, 3));//cannyMat out2;Canny(edge, out2, 15, 10);dst = Scalar::all(0);src1.copyTo(dst, out2);namedWindow("方法二的效果图");imshow("方法二的效果图", out2);waitKey();return 0;
}
运行结果如下:
C/C++ OpenCV之Canny边缘检测相关推荐
- Python,Opencv cv2.Canny()边缘检测
Python,Opencv的Canny边缘检测 1. 效果图 2. 源码 参考 这篇博客将介绍Canny边缘检测的概念,并利用cv2.Canny()实现边缘检测: Canny边缘检测是一种流行的边缘检 ...
- OpenCV中Canny边缘检测
OpenCV中Canny边缘检测 具体的Canny边缘检测原理: 1.消除噪声,使用高斯平滑滤波器卷积降噪 2.计算梯度幅值和方向.利用Sobel滤波器. 得到x和y方向的导数Gx和Gy 计算梯度的幅 ...
- Python+OpenCV:Canny边缘检测
Python+OpenCV:Canny边缘检测 理论 Canny边缘检测是目前比较流行的边缘检测算法,它由John F. Canny发明. 1. 这是一个多阶段的算法. 2. 降噪:由于边缘检测容易受 ...
- 图像处理——基于OpenCV的canny边缘检测
前言 边缘检测是处理图像里面的比较重要的一个概念,现在的边缘有传统的处理算法,也有加入深度学习的边缘检测算法,这里把我用过的几种边缘检测做个对比. canny算子 1.OpenCV canny() C ...
- OpenCV 笔记(02)— 图像显示、保存、腐蚀、模糊、canny 边缘检测(imread、imshow、namedWindow、imwrite)
OpenCV 提供两种用户界面选项: 基于原生用户界面的基本界面,适用于 Mac OS X 的 cocoa 或 carbon,以及适用于 Linux 或 Windows 用户界面的 GTK ,这些界面 ...
- Python cv2(Opencv) Canny边缘检测 和 傅里叶变换
简介: OpenCV是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在Linux.Windows.Android和Mac OS操作系统上.它轻量级而且高效,由一 ...
- opencv图片矩形网格边线_图像算法在数值计算中的应用(1):Canny边缘检测算法...
引言 有限差分方法(FDM)是计算机数值模拟最早采用的方法,至今仍在广泛应用.该方法将求解域划分为差分网格,用有限个网格节点代替连续的求解域.在直角坐标系下,求解域差分网格通常为均匀的矩形,在表达非矩 ...
- OpenCV中的图像处理 —— 图像梯度+Canny边缘检测+图像金字塔
OpenCV中的图像处理 -- 图像梯度+Canny边缘检测+图像金字塔 目录 OpenCV中的图像处理 -- 图像梯度+Canny边缘检测+图像金字塔 1. 图像梯度 1.1 Sobel和Schar ...
- Canny边缘检测算法(python 实现)
文章目录 最优边缘准则 算法实现步骤 1. 应用高斯滤波来平滑(模糊)图像,目的是去除噪声 2. 计算梯度强度和方向 3. 应用非最大抑制技术NMS来消除边误检 4. 应用双阈值的方法来决定可能的(潜 ...
最新文章
- MetaSploit攻击实例讲解------攻击445端口漏洞(kali linux 2016.2(rolling))(详细)
- TeamTNT通过模仿WatchDog团伙来掩盖其加密劫持足迹
- 在阿里云 ECS 上试图安装 SAP Commerce Cloud 的 137 错误
- 下排牙齿中间高两边低_爱护牙齿 每半年洁牙一次
- linux软raid 系统坏了,LINUX下软RAID的制造及如何查看坏盘?
- poj 1703 并查集
- 【ERNIE】深度剖析知识增强语义表示模型——ERNIE
- Visual Studio 创建C语言项目
- webservice和webserver区别
- 四菱天线怎么加强_关于自制电视四菱天线材料好坏和买连接线和转接头问题
- 5星好书———电子技术基础数字部分(第6版)
- collapse组件样式 react_antd源码分析之——折叠面板(collapse)
- mc服务器文件夹改皮肤,我的世界皮肤替换教程 老司机教你更换皮肤
- raster包—aggregate函数
- Qt的各版本直接下载地址
- 7-3 降价提醒机器人 (10 分)小 T 想买一个玩具很久了,但价格有些高,他打算等便宜些再买。但天天盯着购物网站很麻烦,请你帮小 T 写一个降价提醒机器人,当玩具的当前价格比他设定的价格便宜时发
- IP RAN基站回传中的三大组网方案
- sfc/scannow检查并修复window系统
- R语言关联规则及其可视化(Foodmart数据)
- linux操作系统:x86架构,一个良好的运营环境
热门文章
- 做为一个程序员,真的要经历学历之痛?互联网企业有多么看重学历!
- 码农心目中的高富帅甲骨文公司在走下坡路
- 它们翻滚着的飞秋下载
- 飞鸽传书2014提前发布?
- 用VC写Assembly代码(5) --函数调用(一)
- QQ尾巴病毒的Visual C++实现探讨
- 明确C++风格的类型转换的用法
- 程序员工资虽高,但日子过得....
- 不是所有的程序员都适合转管理
- oracle 去除英文字母,请教:如何去掉字段中的所有标点符号(包括全角的和半角的)...