• 締切済み

マットラボについて

matlab で fft2 を用いて変換してぼやかすはずが、画像自体にも波形みたいなノイズらしきものがでました。輪郭あたりをぼやかしたいのにもかかわらず、どうして白い画像の中にも波形みたいに明暗があるのでしょうか?ほかにも同じような事例がありましたら、教えていただきたいです。 よろしくお願いします。 プログラム自体は下記のような感じです。 clear all Img=imread('C:\Users\Owner\Desktop\1.bmp'); ImgG=double((0.299*Img(:,:,1)+0.687*Img(:,:,2)+0.114*Img(:,:,3))/3); % Xの倍精度値を出力 ImgG=ImgG/max(max(ImgG)); [xsize,ysize]=size(ImgG); % 2の累乗 [B,A] = butter(2,8000/10000,'low'); %N次のローパスフィルタ Wnはカットオフ周波数0と1の間の数 ローパスフィルタを設計 Fsize = filter(B, A,Fsize); ImgFFT=fft2(ImgG); ImgFFT=fftshift(ImgFFT); filter2D=zeros(xsize,ysize); %Xサイズ×yサイズの0の行列 filter2D(xsize/2-Fsize:xsize/2+Fsize, ysize/2-Fsize:ysize/2+Fsize)=1; result=filter2D.*ImgFFT; ImgIFFT=ifft2(result); ImgIFFT=sqrt(ImgIFFT.*conj(ImgIFFT)); ImgOut=ImgIFFT/max(max(ImgIFFT)); colormap('gray');figure(1), imagesc(uint8(ImgG*256.0)) colormap('gray');figure(2), imagesc(uint8(abs(ImgFFT))) colormap('gray');figure(3), imagesc(uint8(abs(result)));colormap('gray'); figure(4),imagesc(uint8(ImgOut*256.0));colormap('gray'); imwrite(imagesc(uint8(ImgOut*256.0)),'C:\Users\Owner\Desktop\1.bmp','bmp');

みんなの回答

回答No.1

あまりコード見てませんが、画像サイズの繰返し周波数でも出ているのでは? 画像に輪郭ありますか?

関連するQ&A