【问题标题】:Wiener filtering; Matlab error: Undefined function 'minus' for input arguments of type 'struct'维纳滤波; Matlab 错误:“结构”类型的输入参数的未定义函数“减号”
【发布时间】:2014-02-21 11:14:03
【问题描述】:

我正在尝试在 Matlab 中计算一种算法,以在给定与该点扩散函数卷积的噪声图像和没有噪声的原始图像的情况下过滤出未知点扩散函数。我对 Matlab 还很陌生,我正在尝试在线跟踪代码,所以有些东西我还不完全理解,所以我为我的任何无知表示歉意。

我有数组:

NC2 = 带噪声的卷积图像 (599x599)

img = 原始图像 (300x300)

我有以下代码:

for i=1:length(K)
H=fft2(img,599,599);
W=conj(H)./((abs(H).^2)+K(i));
G=fft2(NC2);
RW=W.*G;
RWfinal=uint8(ifft2(RW));
error=uint8(img)-RWfinal;
errorVect(i)=mean(error(:))^2;
end

我知道 RWfinal 是一个标量结构,那么当它是结构格式时如何应用减号操作?

【问题讨论】:

  • 不应该是uint8而不是uint吗?
  • 另外,减法中的第一项不是结构。如果 second 是结构,您可能希望从uint(img) 中减去结构的特定字段。您不能减去结构和非结构。如果您想减去两个结构而不访问它们各自的字段,您可以使用structfun。您必须向我们提供更多信息才能说出更确切的信息。
  • 是的,它应该是 uint8... 盯着电脑屏幕看了好几个小时,也许我应该休息一下!谢谢@Parag
  • 你的代码中的K是多少?

标签: matlab filtering


【解决方案1】:
uint must be replaced with uint8

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多