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
我试图在不使用图像处理工具箱的情况下对图像进行像素化处理。我被告知这个方法,即取一个像素,然后为所有颜色的周围像素着色,但是我在代码中执行此操作时遇到了麻烦。我上面所说的是我尝试过的,但它并没有按预期工作。
你有什么建议?
答案 0 :(得分:0)
将每个像素视为三个数字,每个数字对应于该像素具有多少红色,绿色和蓝色。比喻= [128 35 0]
然后,您需要使用这三个值并将它们分配给周围的像素。
pixpicture(J,K,:)=pix
J和K值应该对应于该像素的所有邻居。
放手一搏,希望我说的不多,而不只是给你答案。
说完所有这些为什么不用你只是减少图像的大小
pixelatedImage = imresize(mypicture, scale)
这比尝试自己做的容易得多。看起来你并没有想过你会在附近有角落或有多少像素要改变的情况......