大家好,又见面了,我是你们的朋友全栈君。
概述
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 | = | cv.Canny( | image, threshold1, threshold2[, edges[, apertureSize[, L2gradient]]] | ) |
---|---|---|---|---|
edges | = | cv.Canny( | dx, dy, threshold1, threshold2[, edges[, L2gradient]] | ) |
功能说明
canny边缘检测可以参考:Canny edge detector
关于2个阈值参数:
- 低于阈值1的像素点会被认为不是边缘;
- 高于阈值2的像素点会被认为是边缘;
- 在阈值1和阈值2之间的像素点,若与第2步得到的边缘像素点相邻,则被认为是边缘,否则被认为不是边缘。
关于L2gradient参数:
- 如果为true,计算图像梯度的时候会使用:(更加精确)
- 如果为false,计算图像梯度的时候会使用:
相关函数
无
官网样例
edge.cpp houghlines.cpp lsd_lines.cpp.
附录
无
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/139338.html原文链接:https://javaforall.cn