基于MATLAB的opencv中的canny算子

来源:互联网 发布:jo软件官网 编辑:程序博客网 时间:2024/05/24 06:36

实际上opencv中的canny算子并没有进行高斯平滑,因此在使用该函数之前,根据需要先进行相应的平滑处理,计算梯度使用的是1阶的sobel算子,核大小由用户输入,并且高阈值及低阈值,也必须由用户输入。

Opencv中的源代码cvCanny要完全弄清楚需要花一定的时间,这里我们将opencv中的源代码转化为通俗易懂的MATLAB代码,方便读者弄清楚其中的算法。

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%说明

%    梯度计算使用3*3 sobel核;

%    用户自己输入高低阈值;

%    幅值计算为:gradient = abs(dx) + abs(dy),方向定义如下:  

%       4------3------2     

%       |                    |     

%      (1)       X        1     

%       |                     |     

%      (2)----(3)----(4)   

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

/*Opencv中的结果:*/


/*Matlab中的结果:*/


MTALB源代码下载地址:http://download.csdn.net/detail/jackinzhou/4523570