OpenCV Canny()函数

OpenCV Canny()函数被用来检测图像物体的边缘。其算法原理如下:

  1. 高斯滤波:使用高斯滤波器平滑图像以减少噪声。高斯滤波器是一种线性滤波器,可以消除图像中的高频噪声,同时保留边缘信息。
  2. 计算梯度强度和方向:使用Sobel算子计算图像中每个像素的梯度强度和方向。梯度强度表示像素点处的边缘强度,而梯度方向表示边缘的方向。
  3. 非最大值抑制:在计算梯度强度和方向后,非最大值抑制将抑制那些不是局部最大值的像素点。这意味着只有局部最大值的像素点才会被保留下来,从而细化边缘。
  4. 双阈值检测:最后,双阈值检测用于检测边缘。如果像素的梯度强度大于高阈值,则该像素被视为边缘;如果像素的梯度强度在两个阈值之间,则该像素被视为边缘候选;如果像素的梯度强度低于低阈值,则该像素被视为非边缘。
  5. 边缘连接:在双阈值检测后,可能会得到一些不连续的边缘。为了得到完整的边缘图像,通常会通过连接强边缘像素点和与之相邻的弱边缘像素点来完成边缘的连接。

它有两个原型函数,如下:

该函数在输入图像中查找边缘,并使用 Canny 算法在输出图边缘中标记它们。阈值1和阈值2之间的最小值用于边缘链接。最大值用于查找强边缘的初始段。

函数参数:

image 8 位输入图像。

edges 输出边缘图;单通道 8 位图像,其大小与 image 相同。

thrshold1 第一个阈值(低阈值)

threhold2 第二个阈值(高阈值),一般第二个阈值取第一个阈值的2倍。

apertureSize Sobel 算子的孔径大小。缺省值为3.

L2gradient 一个标志,指示是否应使用更准确的 L2

来计算图像梯度幅值( L2gradient=true ),或者默认

就足够了(L2gradient = false)。

这是一个重载成员函数,为方便起见而提供。它与上述函数的不同之处仅在于它接受的参数。 使用 Canny 算法和自定义图像梯度查找图像中的边缘。

函数参数:

x 输入图像的 16 位 x 导数(CV_16SC1 或 CV_16SC3)。

y 输入图像的 16 位 y 导数(与 dx 类型相同)。

edges 输出边缘图;单通道 8 位图像,其大小与 image 相同。

threshold1 第一个阈值。

threshold2 第二个阈值。

L2gradient 一个标志,指示是否应使用更准确的 L2

来计算图像梯度幅值( L2gradient=true ),或者默认

就足够了(L2gradient = false)。

用法示例:

新建一个控制台应用程序,在源程序中添加如下代码:

复制代码
#include <iostream>
#include <opencv2/opencv.hpp>

using namespace std;
using namespace cv;

int main()
{
	Mat src = imread("1.bmp");
	if(src.empty())
	{
		cout << "Cann't Open Image!" << endl;
		return -1;
	}
	imshow("Src", src);

	Mat dst;
	Mat edges;
	cvtColor(src, dst, COLOR_BGR2GRAY);
	imshow("Dst", dst);
	Canny(dst, edges, 100, 200);
	imshow("Edges", ~edges);

	waitKey(0);
}

试运行,结果如下:

相关推荐
数据与后端架构提升之路10 分钟前
小鹏VLA 2.0的“神秘涌现”:从痛苦到突破,自动驾驶与机器人如何突然“开窍”?
人工智能·机器人·自动驾驶
fruge13 分钟前
CANN核心特性深度解析:简化AI开发的技术优势
人工智能
沛沛老爹30 分钟前
AI入门知识之RAFT方法:基于微调的RAG优化技术详解
人工智能·llm·sft·raft·rag
zskj_zhyl32 分钟前
科技助老与智慧养老的国家级政策与地方实践探索
大数据·人工智能·科技
YangYang9YangYan40 分钟前
职业本科发展路径与规划指南
大数据·人工智能·学习·数据分析
牛客企业服务1 小时前
2025年AI面试防作弊指南:技术笔试如何识别异常行为
人工智能·面试·职场和发展
shayudiandian1 小时前
CNN详解:卷积神经网络是如何识别图像的?
人工智能·深度学习·cnn
V_156560272191 小时前
2025年蚌埠市“三首产品”、市级服务型制造示范、市级企业技术中心等5个项目认定申报指南大全
大数据·人工智能·制造
盘古信息IMS1 小时前
AI算力时代,PCB制造如何借助盘古信息MOM构建数字化新范式?
人工智能·制造
集成显卡2 小时前
AI取名大师 | uni-app + Wot UI 跟随设备自动切换明暗主题
人工智能·ui·uni-app·外观配色