【问题标题】:Generation of edge stop parameter according to self-snake model in MATLABMATLAB中根据自蛇模型生成边缘停止参数
【发布时间】:2015-04-27 16:39:15
【问题描述】:

我想根据 G. Sapiro 的自蛇模型生成边缘停止参数,以消除乘性噪声。函数是 g(r) = 1/(1+(r/k)^2),其中 r 是 ∇u 的大小。 u 是实际图像。我的代码如下

[GradientX,GradientY] = gradient(double(originimg));
Gr = sqrt((GradientX.*GradientX)+(GradientY.*GradientY));
[X1, Y1]=size(Gr);
for i=1:X1
    for j=1:Y1
        r = mean(Gr(i,:));
    end
end
stParam = 1 / (1 + ((r / gradTP)^2));

gradTP=1 的值。

但我没有得到预期的结果。 实际上它给出了一个矩阵作为结果,但根据我正在关注的论文,参数必须是一个标量。请提出一些出路。提前致谢。

【问题讨论】:

  • 您的 for 循环没有任何意义。一方面,j 索引变量没有被使用。最重要的是,r 在循环的每次迭代中都会被更改,而不会被使用。您能否提供更多关于 r 实际应该是什么的见解?是图像整体的大小,还是每个点的大小?
  • 其实r是整个图像的梯度大小。但这就是我卡住的地方。这就是为什么我想到将 r 的值作为平均值。你能帮帮我吗?

标签: image matlab image-processing gradient edge-detection


【解决方案1】:

从您的 cmets 中,您说要找到整体图像的渐变。我假设您的意思是为整个图像计算一个幅度值。一种方法可能是找到平均幅度值。这可以通过简单地找到Gr 的整体平均值来完成。然后,您可以使用它来插入您的公式以获得结果。

因此,请尝试以下操作:

[GradientX,GradientY] = gradient(double(originimg));
Gr = sqrt((GradientX.*GradientX)+(GradientY.*GradientY));

%// Change
r = mean(Gr(:));

stParam = 1 / (1 + ((r / gradTP)^2));

【讨论】:

  • 非常感谢@rayryeng​​span>
猜你喜欢
  • 1970-01-01
  • 2019-11-16
  • 2014-08-25
  • 2021-12-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多