【问题标题】:Repairing pixelated image using matlab Help needed需要使用matlab帮助修复像素化图像
【发布时间】:2013-10-08 23:04:44
【问题描述】:

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 语句是错误的,我不知道从这里做什么。我需要帮助编写 for 循环以通过图像矩阵来识别黑白像素。

【问题讨论】:

  • 发布您已经编写的任何代码,同时尝试自己解决这个问题。然后指出你有问题的部分。
  • 问题已被编辑。
  • 答案已编辑,但我认为您应该真正阅读书籍,并阅读一些关于 MATLAB 的一般教程和使用 MATLAB 进行图像处理。

标签: arrays matlab loops for-loop pixels


【解决方案1】:

尝试对您的图片运行中值过滤器。见here for an example

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-11
    • 2015-08-06
    • 2019-12-31
    • 1970-01-01
    • 2014-07-19
    • 1970-01-01
    • 2013-04-20
    相关资源
    最近更新 更多