【问题标题】:Error: Image Noise detection in MATLAB错误:MATLAB 中的图像噪声检测
【发布时间】:2014-03-16 08:05:15
【问题描述】:

在实现图像中噪声检测的简单想法时出现错误。让I 表示噪声图像,I 的每个像素由I(x,y) 表示。定义了以I(x, y) 为中心的大小为3X3 的滑动窗口。首先,我们估计窗口的中心像素是否是噪声。为了区分噪声和信号,我们计算窗口的平均值m 和标准差s。如果像素在m-sm+s 之间,则它是信号,否则为噪声,我们将应用中值滤波。

算法:

  1. 阅读图片I
  2. 获取大小为3X3 的滑动窗口或遮罩。
  3. 计算掩码的平均值 m 和标准差 s
  4. 计算阈值如下:t1 = m-st2 = m+s
  5. IF t1 <= I(x,y) and I(x,y) <= t2, THEN Result(x,y) = I(x,y) ELSE Result(x, y) = medfilt2(I(x,y)
  6. 对整个图像重复步骤 3、4 和 5。
  7. 显示生成的图像。

我尝试如下实现这个算法

clc;
close all;
clear all;

I=imread('lena.jpg');
I=rgb2gray(I);

Out = blockproc(I,[3 3],@(x) noisedetection(x.data(:)));

imshow(out);

函数noisedetection如下:

function x=noisedetection(y)
s=std2(y(:)); % Calculating Standard deviation
m=mean2(y(:)); % Calulating Mean
t1=m-s; % Threshold 1
t2=m+s; % Threshold 2
[m n]=size(y);

for i=1:m
    for j=1:n


if (t1<=y(i,j) & y(i,j)<=t2)
    iout(i,j)=y(i,j)
else
    iout(i,j)=medfilt2(y(i,j)) % Filtering only when the pixel does not fall in the interval [t1,t2] 
end
    end
end
x=iout

但我收到以下错误

    Subscripted assignment dimension mismatch.

Error in blockprocInMemory (line 151)
    b(last_row_start:end,last_col_start:end,:) = lr_output;

Error in blockproc (line 237)
    result_image = blockprocInMemory(source,fun,options);

Error in detection (line 8)
Out = blockproc(I,[3 3],@(x) noisedetection(x.data(:)));

请帮帮我。

【问题讨论】:

    标签: matlab image-processing


    【解决方案1】:
    1. blockproc 为您提供不同的块。而是使用 nlfilter。

    2. iout(i,j)=medfilt2(y(i,j)) 是错误的陈述。 medfilt2 只进行中值过滤,它不给你中值。要获取中值,只需使用median(y(:))

    3. 这是错误的:(t1&lt;=y(i,j) &amp; y(i,j)&lt;=t2)

    另外,您已交叉发布。签出:https://dsp.stackexchange.com/questions/15033/error-image-noise-detection-in-matlab/15036?noredirect=1#comment25759_15036

    上面的链接给出了对$3^rd$的解释。

    【讨论】:

      【解决方案2】:

      这意味着您没有为输出参数分配任何内容。我想你应该分配给x 而不是iout (i, j)

      【讨论】:

      • 通过在函数中添加 x=iout 进行了更新,现在得到“下标分配维度不匹配”。
      • 我是否以正确的方式实现它?或者我们还有其他方法可以实现吗?
      猜你喜欢
      • 2012-01-04
      • 1970-01-01
      • 1970-01-01
      • 2014-06-01
      • 2017-07-11
      • 1970-01-01
      • 2011-01-27
      • 1970-01-01
      相关资源
      最近更新 更多