使用matlab修复像素化图像需要帮助

时间:2013-10-08 23:04:45

标签: arrays matlab loops for-loop pixels

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循环来遍历图像矩阵以识别黑白像素。

1 个答案:

答案 0 :(得分:0)

尝试在图片上运行中值滤镜。请参阅here for an example

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

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