大家好,又见面了,我是你们的朋友全栈君。
概述
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.net/139338.html原文链接:https://javaforall.net
