如何在不使用图像工具箱的情况下在Matlab中对图像进行像素化处理?

时间:2014-02-27 01:17:50

标签: matlab image-processing

mypicture=imread(filename); %inputs 1st image
[row col pan]=size(mypicture);
subplot(2,1,2)
pixpicture=mypicture;
image(pixpicture);
hold on;

for J=1:stepval:row
for K=1:stepval:col
    pix=pixpicture(J,K,:);
    x=[K K+stepval K K+stepval];
    y=[J J J+stepval J+stepval];
    plot(x,y);
    hold all;
end    
end

subplot (2,1,1)
image(mypicture);
end

我试图在不使用图像处理工具箱的情况下对图像进行像素化处理。我被告知这个方法,即取一个像素,然后为所有颜色的周围像素着色,但是我在代码中执行此操作时遇到了麻烦。我上面所说的是我尝试过的,但它并没有按预期工作。

你有什么建议?

1 个答案:

答案 0 :(得分:0)

将每个像素视为三个数字,每个数字对应于该像素具有多少红色,绿色和蓝色。比喻= [128 35 0]

然后,您需要使用这三个值并将它们分配给周围的像素。

pixpicture(J,K,:)=pix

J和K值应该对应于该像素的所有邻居。

放手一搏,希望我说的不多,而不只是给你答案。

说完所有这些为什么不用你只是减少图像的大小

pixelatedImage = imresize(mypicture, scale)

这比尝试自己做的容易得多。看起来你并没有想过你会在附近有角落或有多少像素要改变的情况......