4

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

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

4

2 回答 2

5

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

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

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

于 2011-05-27T12:17:52.203 回答
0

确实检测对角线。你只需运行它两次。根据定义,水平和垂直的点是对角线。

于 2012-12-20T06:46:57.267 回答