大家好,又见面了,我是你们的朋友全栈君。
概述
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.
附录
无
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/139338.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...