在OpenCV中,边缘检测的方法有以下几种:
Sobel
Scharr
Laplace
Canny
其中前三种的边缘检测是带方向的
1.Sobel:
cvw.Sobel(filename,ddepth,dx,dy,dst=None,ksize=None,scale=None,delta=None,borderType=None)
ddepth:图像颜色深度(不甚了解)
针对不同的输入图像,输出目标图像有不同的深度,具体组合如下:
- 若src.depth() = CV_8U, 取ddepth =-1/CV_16S/CV_32F/CV_64F
- 若src.depth() = CV_16U/CV_16S, 取ddepth =-1/CV_32F/CV_64F
- 若src.depth() = CV_32F, 取ddepth =-1/CV_32F/CV_64F
- 若src.depth() = CV_64F, 取ddepth = -1/CV_64F
dx:int类型的,表示x方向的差分阶数,1或0
dy:int类型的,表示y方向的差分阶数,1或0
kSize:模板大小,对于Sobel算子这里的取值为1,3,5,7,当不输入的时候,默认为3。特殊的,当kSize = 1的时候,采用的模板为13或者31 而非平时的那些格式
2.Scharr:
Scharr(src, ddepth, dx, dy, d