我遇到了关于opencv的Sobel边缘检测器的问题。从它的文档中可以看出,它只能检测水平和垂直方向的边缘(通过指定0,1或1,0)。有没有人知道如何使用cvSobel获取45度和135度的对角线边缘(不是Canny方法)?Matlab有一个解决方案,使用其edge(I,'sobel' ...)选项,但我的代码都是用c++编写的,我想保持这种方式。感谢您的建议和解决方案。
嗨。 计算X方向上的结果,得到resX 计算Y方向上的结果,得到resY 选择所需的方向(角度α) 所需结果为sqrt((Y*sin(alpha))^2 + (X*cos(alpha))^2) 这适用于边缘检测、运动模糊以及任何线性的有向滤波器。
如果mag> thresh orient [i,j] = atan2(dy [i,j],dx [i,j]) 否则 orient [i,j] = 4
- luhfluh