matlab中原图像通过傅里叶变换后得到频域信号,由这些信号能不能恢复出原图(一模一样)
img=imread('canyon-input.png');r=img(:,:,1);g=img(:,:,2);b=img(:,:,3);figure,imshow(i...
img=imread('canyon-input.png');
r=img(:,:,1);
g=img(:,:,2);
b=img(:,:,3);
figure,imshow(img);
%二维傅里叶变换
rf=fft2(r);
gf=fft2(g);
bf=fft2(b);
% 二维傅里叶逆变换
fr=ifft2(rf);
fg=ifft2(gf);
fb=ifft2(bf);
fr=im2uint8(mat2gray(fr));
fg=im2uint8(mat2gray(fg));
fb=im2uint8(mat2gray(fb));
figure,imshow(fr,[]);
figure,imshow(fg,[]);
figure,imshow(fb,[]);
%恢复原图
oimg(:,:,1)=fr;
oimg(:,:,2)=fg;
oimg(:,:,3)=fb;
figure,imshow(oimg); 展开
r=img(:,:,1);
g=img(:,:,2);
b=img(:,:,3);
figure,imshow(img);
%二维傅里叶变换
rf=fft2(r);
gf=fft2(g);
bf=fft2(b);
% 二维傅里叶逆变换
fr=ifft2(rf);
fg=ifft2(gf);
fb=ifft2(bf);
fr=im2uint8(mat2gray(fr));
fg=im2uint8(mat2gray(fg));
fb=im2uint8(mat2gray(fb));
figure,imshow(fr,[]);
figure,imshow(fg,[]);
figure,imshow(fb,[]);
%恢复原图
oimg(:,:,1)=fr;
oimg(:,:,2)=fg;
oimg(:,:,3)=fb;
figure,imshow(oimg); 展开
2个回答
展开全部
你使用的具体命令是什么?
另外,你的图像格式是什么格式?
另外,你的图像格式是什么格式?
追问
我的代码已经贴出,程序执行完得到的图像与原图不一样
追答
1、你的'canyon-input.png'读入matlab后,存储为矩阵img,请问矩阵img的格式是什么?
2、原图与恢复后的图像不一样,什么地方不一样?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不能。
更多追问追答
追问
你好,请问这是为什么,在这个过程中损失了什么信息?
追答
简单地说,进行的是图像离散傅里叶变换,和反变换。两步均抽样进行,损失了细节信息。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询