【发布时间】:2015-08-19 23:53:59
【问题描述】:
我遇到了两种查找梯度大小和方向的方法
1:
I=imread('12.jpg');
I1=rgb2gray(I);
ed=edge(I1,'canny',0.4);
[gx gy]=gradient(double(ed),0.5);
figure;
imshow(I);
gm=sqrt(gx.^2+gy.^2);
gdp=atan2(gy,gx);
figure;
imshow(gm);
figure; imshow(gdp);
gm 将存储梯度大小并 gdir 方向
2:一个内置的matlab函数
[gm gdp]=imgradient(ed);
两种输出完全不同。我应该使用哪一个来实现 Stroke Width Transform?
【问题讨论】:
-
我不使用 Matlab,所以我可能是错的,但是:canny 过滤器会扭曲你的渐变,所以结果是边缘的方向和大小而不是图像本身你可以通过 x,y 导出图像(我我猜那是
gradient,所以只需尝试删除精明过滤器)。sqrt和atan2部分保持原样。不知道imgradient的结果是什么你也应该发布输入图像和 2 个输出
标签: image matlab image-processing pattern-recognition