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循环来遍历图像矩阵以识别黑白像素。
答案 0 :(得分:0)
尝试在图片上运行中值滤镜。请参阅here for an example。
如果您出于学习原因必须使用for
循环,请解释您认为是“坏像素”(黑色?以某种方式与邻居不同?),尝试识别基于此的像素你确定的标准,并调整该像素的值。
通常,您不应该采用从空数组开始并一次增长一个像素的方法。而是将输出图像创建为输入的副本(clean=noisyRGBarray;
)或使用零(clean=zeros(size(noisyRGBarray))
)初始化,并修改坏像素(clean(i,j,:)=...
);