问题描述
|
我在opencv的Sobel边缘检测器上遇到问题。从其文档中看来,它仅适用于水平和垂直方向的边缘(通过指定0,1或1,0)。有谁知道如何使用cvSobel(不是Canny方法)获得对角线45deg和135deg。
Matlab的edge(I,\'sobel \'...)选项令人不快,但我的代码全部使用c ++,我希望保持不变。
感谢您的建议和解决方案。
解决方法
喂
通常,您可以按以下方式在任何方向上计算任何过滤器:
resX =计算X方向的结果
resY = Y方向的钙化结果
选择所需的方向(角度Alpha)
所需的结果是sqrt((Y *sinα)^ 2 +(X *cosα)^ 2)
这适用于边缘检测,运动模糊和任何线性有向滤镜。
,它确实检测对角线。您只需运行两次。根据定义,水平和垂直点都是对角线。