Matlab与OpenCV的Canny边缘检测

目录

Matlab与OpenCV的Canny边缘检测

**
**

Matlab的Canny算子

BW =edge(I,‘canny’)

用canny算子实现边缘检测

BW =edge(I,‘canny’,thresh)

为canny算法指定sensitivity thresholds(阈值)。

指定两个阈值(二维矢量):第一个元素为低阈值,第二个元素为高阈值。

指定一个阈值(单个数值):用作高阈值,低阈值为0.4*高阈值。

未指定阈值(或用[]代替):自动根据图像的梯度直方图计算高低阈值。

BW =edge(I,‘canny’,thresh,sigma)

sigma 表示高斯滤波器的标准差,默认值为sqrt(2)。滤波器大小根据sigma值自动计算。

[BW,thresh] =edge(I,‘canny’,…)

用thresh返回两个阈值。

OpenCV的Canny算子

cvCanny函数头:

void cvCanny (
const CvArr* img,
CvArr* edges,
double lowThresh,
double highThresh,
int apertureSize = 3
);

image 单通道输入图像
edges 单通道图像,保存图像边缘
threshold1 阈值1
threshold2 阈值2
apertureSize Sobel算子的孔径参数 (参见 cvSobel 函数)

-—————————–

两者的区别,见下面文章

在OpenCV中自适应确定canny算法的分割阈值