高中的时候在《科学 fans》上看到过爱因斯坦与玛丽莲梦露的混合照片,觉得很有意思,却不知道原理,现在终于能实现了
原理
找两张轮廓比较像的图片 A 和 B, 提取一张照片的低频信息, 另一张图片的高频信息, 结合这两个照片. 设置不同的频率门限, 组合照片. 组合的效果是, 放大看是 A, 缩小看是 B. 或者近视的人看到的是玛丽莲梦露, 没近视的人看到的是爱因斯坦.
MATLAB 代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
| I1=imread('11.jpg'); g1=rgb2gray(I1); s=fftshift(fft2(g1)); [M,N]=size(s); n1=fix(M/2); n2=fix(N/2);
d0=10; for i=1:M for j=1:N d=sqrt((i-n1)^2+(j-n2)^2); if d<d0 h=1; else h=0; end s(i,j)=h*s(i,j); end end s=ifftshift(s); s=uint8(real(ifft2(s))); figure(1); imshow(s);
I2=imread('22.jpg'); g2=rgb2gray(I2); s2=fftshift(fft2(g2)); [M2,N2]=size(s2); n12=fix(M2/2); n22=fix(N2/2);
d02=5; for i=1:M2 for j=1:N2 d=sqrt((i-n12)^2+(j-n22)^2); if d<d02 h=0; else h=1; end s2(i,j)=h*s2(i,j); end end s2=ifftshift(s2); s2=uint8(real(ifft2(s2))); figure(2); imshow(s2);
s3=imadd(s,s2); figure(3); imshow(s3); imwrite(s3,'he.jpg','JPG')
|
效果
当然, 你也可以
- By:tr0y.wang
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...