概述
Canny()函数可以使用canny算法对输入图像进行边缘检测。
API说明
C++ API:
void cv::Canny |
( | InputArray |
image , |
(输入图像:8-bit) |
---|---|---|---|---|
OutputArray |
edges , |
(输出边缘图像:单通道,8-bit,size与输入图像一致) | ||
double |
threshold1 , |
(阈值1) | ||
double |
threshold2 , |
(阈值2) | ||
int |
apertureSize =3 , |
(Sober算子大小) | ||
bool |
L2gradient =false
|
(是否采用更精确的方式计算图像梯度) | ||
) |
void cv::Canny |
( | InputArray |
dx , |
(输入图像在x方向的导数:16-bit(CV_16SC1或CV_16SC3)) |
---|---|---|---|---|
InputArray |
dy , |
(输入图像在y方向的导数:16-bit(CV_16SC1或CV_16SC3)) | ||
OutputArray |
edges , |
(输出边缘图像:单通道,8-bit,size与输入图像一致) | ||
double |
threshold1 , |
(阈值1) | ||
double |
threshold2 , |
(阈值2) | ||
bool |
L2gradient =false
|
(是否采用更精确的方式计算图像梯度) | ||
) |
python API:
edges |
= |
( |
image , threshold1 , threshold2 [, edges [, apertureSize [, L2gradient ]]] |
) |
---|---|---|---|---|
edges |
= |
( |
dx , dy , threshold1 , threshold2 [, edges [, L2gradient ]] |
) |
功能说明
canny边缘检测可以参考:Canny edge detector
关于2个阈值参数:
- 低于阈值1的像素点会被认为不是边缘;
- 高于阈值2的像素点会被认为是边缘;
- 在阈值1和阈值2之间的像素点,若与第2步得到的边缘像素点相邻,则被认为是边缘,否则被认为不是边缘。
关于L2gradient参数:
- 如果为true,计算图像梯度的时候会使用:(更加精确)
- 如果为false,计算图像梯度的时候会使用:
相关函数
无
官网样例
lsd_lines.cpp.
附录
无