我遇到问题 opencv's Sobel edge detector. 从它的文档中它似乎只适用于水平和垂直方向边缘(通过指定0,1或1,0) . Has anyone got idea how to get the diagonal edges 45deg and 135deg with cvSobel (不是Canny方法) . Matlab有一个灵魂与它的边缘(I,'sobel' ...)选项,但我的代码全部在c,我想保持它这样 .
感谢您的建议和解决方案 .
喜 . 您通常可以通过以下方式计算任何方向的任何过滤器:
resX =在X方向上计算结果
resY = Y方向的Caluclate结果
选择所需方向(角度α)
期望的结果是sqrt((Y * sin(alpha))^ 2(X * cos(alpha))^ 2)
这适用于边缘检测,运动模糊和任何 linear 定向滤波器 .
它确实检测到对角线 . 你只需运行两次 . 根据定义,水平和垂直的点是对角线 .
2 回答
喜 . 您通常可以通过以下方式计算任何方向的任何过滤器:
resX =在X方向上计算结果
resY = Y方向的Caluclate结果
选择所需方向(角度α)
期望的结果是sqrt((Y * sin(alpha))^ 2(X * cos(alpha))^ 2)
这适用于边缘检测,运动模糊和任何 linear 定向滤波器 .
它确实检测到对角线 . 你只需运行两次 . 根据定义,水平和垂直的点是对角线 .