【发布时间】:2015-10-29 05:19:30
【问题描述】:
我正在编写我自己的 Canny 版本。因此,从文献中我们必须:
- 高斯平滑
- 在这里,我使用的是 5x5 蒙版
-
计算梯度大小和方向
-
这里,我使用的是 Sobel,然后是
Grad = abs(Gx)+ abs(Gy) Orient = ( atan2(Gy/Gx) * 180/3.14159265 ) + 180
-
- 非最大抑制
- 例如,如果 Orient = 0º => 如果 G(i;j) > G(i;j-1) && G(i;j) > G(i;j+1) => 此处为 MAX,否则= 0
- 双阈值
- 在这一步中,我们得到 NL 和 NH
- 此时,显然NL包含NH,所以NL = NL - NH
- 现在,对于 NH(x,y) 中的每个非零像素 p,我必须将 NL(x,y) 中连接到 p 的所有弱像素标记为有效像素
- 最终图像
- 它将是 NL + NH
最后我得到了 openCV Canny 的输出来比较。
我做错了什么?
【问题讨论】:
-
没有step1的输出是什么?
标签: c++ image image-processing