سلام میخوام با مطلب یه برنامه بنویسم اول یه تصویر رو نویزی کنه بعد با میانگیری هر8 پیکسل دور یه پیکسل و تقسیمش به 8 نویز از بین ببره و اینکه برای مشکل قاب ماتریس تصویر هم از سطر و ستون 2ام تا یکی مونده به اخری این کارو انجام بده برنامه ای که نوشتم میشه بگید چرا اشتباهه؟در ضمن خواستم مقادیر سطح روشنایی ها بعد از میانگیری بهuint8 تبدیل بشه و اولdoubleباشه .
درضمن مشکل دیگه ام اینه که چرا هیستوگرام های تصویر نویزی و اصلی مثل همن؟؟؟
درضمن مشکل دیگه ام اینه که چرا هیستوگرام های تصویر نویزی و اصلی مثل همن؟؟؟
کد:
close all
clear all
clc
i1=imread('images_008.jpg');
figure;imshow(i1);
figure,imhist(i1(:,:,1));
figure,imhist(i1(:,:,2));
figure,imhist(i1(:,:,3));
i2=imnoise(i1,'salt & pepper',0.02);
figure,imhist(i2(:,:,1));
figure,imhist(i2(:,:,2));
figure,imhist(i2(:,:,3));
i3=double(i2);
figure,imshow(i2);
[s1 s2 s3]=size(i2);
m=s1-1;
n=s2-1;
for i=2:m
for j=2:n
i3(i,j,1)=(i2(i-1,j-1,1)+i2(i-1,j,1)+i2(i-1,j+1,1)+i2(i,j-1,1)+i2(i,j+1,1)+i2(i+1,j-1,1)+i2(i+1,j,1)+i2(i+1,j+1,1))/8;
i3(i,j,2)=(i2(i-1,j-1,2)+i2(i-1,j,2)+i2(i-1,j+1,2)+i2(i,j-1,2)+i2(i,j+1,2)+i2(i+1,j-1,2)+i2(i+1,j,2)+i2(i+1,j+1,2))/8;
i3(i,j,3)=(i2(i-1,j-1,3)+i2(i-1,j,3)+i2(i-1,j+1,3)+i2(i,j-1,3)+i2(i,j+1,3)+i2(i+1,j-1,3)+i2(i+1,j,3)+i2(i+1,j+1,3))/8;
end
end
for i=2:m
for j=2:n
if i3(i,j,1)>255
i3(i,j,1)=255;
if i3(i,j,2)>255
i3(i,j,2)=255;
if i3(i,j,3)>255
i3(i,j,3)=255;
end
end
end
if i3(i,j,1)<0
i3(i,j,1)=0;
if i3(i,j,2)<0
i3(i,j,2)=0;
if i3(i,j,3)<0
i3(i,j,3)=0;
end
end
end
end
end
figure;imshow(i3);
i4=uint8(i3);
figure,imshow(i4);




دیدگاه