李俊峰
DOI:10.16644/j.cnki.cn33-1094/tp.2016.09.019
摘 要: 针对经典的Canny算法在边缘检测时有漏检、错检的现象,提出一种改进的Canny算法。该算法采用了引导滤波的方法对图像进行滤波,同时改进梯度计算的模版,最后基于一维交叉熵值的思想,自适应地计算出Canny算子的高低阈值。实验结果表明,该算法在检测复杂的图像时有明显的改善。
关键词: 边缘检测; Canny算子; 自适应; 一维交叉熵
中图分类号:TP391 文献标志码:A 文章编号:1006-8228(2016)09-67-03
An improved Canny edge detection method
Li Junfeng
(Shool of computer and Information Engineering Henan University, Kaifeng, Henan 475000, China)
Abstract: The classical Canny algorithm edge detection has the defect of losing details of the edge. In this paper, an improved the classic Canny algorithm is proposed. The algorithm adopts the method of guide filtering to filter the image, improves the gradient calculation template, and according to the idea of one-dimensional cross-entropy, calculates the thresholds adaptively. The experimental results show that the proposed algorithm has a significant improvement in the detection of complex images.
Key words: edge detection; Canny algorithm; adaptive; One-dimensional cross-entropy
0 引言
边缘是一幅图像的最基本的特征,包含了图像的重要信息,是研究分析图像的前提,由于提取出了边缘,大大的减少了所要分析的数据量。常用的边缘检测算法是基于梯度的边缘检测算法,也是比较简单的一类算法。其主要原理使用了局部算子的思想。主要的算子包括:Roberts算子、Prewitt算子、Sobel算子、Kirsh算子,Robinson算子等。近年来,许多学者也提出很多新型的边缘检测方法[1-3]。
本文基于经典Canny算法,提出一种改进的自适应方法,该算法采用了引导滤波的方法对图像进行滤波,同时改进了梯度计算的模版,最后采用一维交叉熵的方法根据图像特征自适应的计算出Canny算子的高低阈值,改善了边缘检测的效果,提高了Canny算法的自适应性。
1 经典Canny边缘检测算法
Canny边缘检测算法是John F.Canny[4]在1986年提出的一种具有完整理论的边缘检测方法,并且给出了边缘检测计算理论,用来解释Canny算法的工作原理。根据Canny创作的理论,它有三个主要的评价准则:低错误率、高定位性、最小响应。该算法首先采用高斯滤波对图像进行预处理,然后对处理过的图像进行梯度幅值的计算并进行非极大值的抑制,最后根据经验选取高低阈值进行检测和边缘连接。
Canny算法相较于传统的算子有明显改善,但是也有一些缺陷:
⑴ 使用高斯滤波处理图像时,虽然可以去除噪声,但只适合高斯滤波的噪声分布图像,而且图像的很多边缘也会被模糊,导致随后的边缘检测效果不理想。
⑵ 在计算梯度幅值时所使用的模版比较简单,得出的梯度幅值并不能很好的凸显边缘点。
⑶ 在阈值的选择上,通常是根据经验人为的设定高低阈值。这导致算法的自适应能力不强。