-1

http://i.imgur.com/j7hStIG.png

嗨,我需要帮助使用 for 循环修复此图像。我知道我必须先识别坏像素并填写它们。谢谢。PS我对matlab很陌生

clear
clc
format compact

filenameIN = uigetfile('.bmp','Picture');
noisyRGBarray = imread(filenameIN);
figure(1)
imshow(noisyRGBarray)
y = noisyRGBarray;
[m,n]=size(y)
clean=[];

for i=2:m-1
   for j=2:n-1
       if y(i,j)% clean add new
            clean = [ clean, y(i,j) ]
       end
   end
end

我很确定 for statemetn 是错误的,我不知道从这里做什么。我需要帮助编写 for 循环以通过图像矩阵来识别黑白像素。

4

1 回答 1

0

尝试在您的图像上运行中值滤波器。有关示例,请参见此处。

如果您出于学习原因必须使用for循环,请解释您认为是“坏像素”(黑色?在某些方面与邻居不同?),尝试根据您确定的标准识别这样的像素,并调整该像素的值。

一般来说,你不应该采用从一个空数组开始,一次增长一个像素的方法。相反,将输出图像创建为输入的副本 ( clean=noisyRGBarray;) 或用零初始化 ( clean=zeros(size(noisyRGBarray))),并修改坏像素 ( clean(i,j,:)=...);

于 2013-10-08T23:12:08.777 回答