سلام میخوام با مطلب یه برنامه بنویسم اول یه تصویر رو نویزی کنه بعد با میانگیری هر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);
دیدگاه