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 函数)
-—————————–
两者的区别,见下面文章