对角线的Opencv Sobel边缘检测(右上45度,上行135度)

luh*_*luh 4 opencv edge-detection

我对opencv的Sobel边缘检测器有疑问.从它的文档来看,它似乎只适用于水平和垂直方向边缘(通过指定0,1或1,0).有没有人知道如何用cvSobel(不是Canny方法)获得45deg和135deg的对角线边缘.Matlab有一个灵魂与它的边缘(我,'sobel'...)选项,但我的代码都是用c ++编写的,我想保留它.

感谢您的建议和解决方案.

Dan*_*HsH 5

喜.您通常可以通过以下方式计算任何方向的任何过滤器:

  1. resX =在X方向上计算结果
  2. resY = Y方向上的Caluclate结果
  3. 选择所需的方向(角度alpha)
  4. 期望的结果是sqrt((Y*sin(alpha))^ 2 +(X*cos(alpha))^ 2)

这适用于边缘检测,运动模糊和任何线性定向滤波器.