Matlab中实现两张图片的叠加显示效果

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/weixin_44401286/article/details/94729248

Matlab中实现两张图片的叠加显示效果


** 在matlab中以50%透明度实现两张图图片的叠加显示,图片的大小可以任意设置,不同大小的图片,较小的图片在整幅图中居中显示。**

1、相同大小图片的叠加显示

matlab代码如下:
%两张尺寸大小相同的图片的叠加

clc;                    %清除命令代码
clear                   %清除变量
close all;              %关闭所有窗口

m = imread('Lena.jpg');
m1 = imread('scen1.jpg');
result = imadd(0.5*m,m1);
subplot(1, 3, 1);
imshow(m);title('Lena');
subplot(1, 3, 2);
imshow(m1);title('scen1');
subplot(1, 3, 3);
imshow(result);title('result');

Lena原图
背景图
运行结果如下所示:
在这里插入图片描述

2、不同大小图片的叠加显示

图片尺寸的大小可以通过电脑自带的画图软件进行修改,设计中把背景图片放大作为底图,设计代码如下所示:

clc;                    %清除命令代码
clear                   %清除变量
close all;              %关闭所有窗口
% 导入图像12,显示图像基本信息
im1 = imread('scen.jpg');%大图
im2 = imread('lena.jpg');%小图

% 显示大尺寸的彩色风景图和小尺寸彩色照片的原始图
figure(1)
imshow(im1)
figure(2)
h_im2 = imshow(im2)

% 显示图片文件的详细信息
infoIm1 = imfinfo('scen.jpg')
infoIm2 = imfinfo('Lena.jpg')

% 小尺寸彩色照片在风景图当中的居中处理
[m1,n1,l1] = size(im1);
[m2,n2,l2] = size(im2);
t = zeros(m1,n1,l1); 
t = uint8(t);
t((m1/2-m2/2+1):(m1/2+m2/2),(n1/2-n2/2+1):(n1/2+n2/2),:) = im2 ;%做居中处理
C = imadd(0.5*t,im1);%乘以0.5对中间小照片做透明处理

C((m1/2-m2/2+1):(m1/2+m2/2),(n1/2-n2/2+1):(n1/2+n2/2),:) =... 
C((m1/2-m2/2+1):(m1/2+m2/2),(n1/2-n2/2+1):(n1/2+n2/2),:)-...
im1((m1/2-m2/2+1):(m1/2+m2/2),(n1/2-n2/2+1):(n1/2+n2/2),:).*0.5;  %对pic_1乘以0.5做补偿处理

figure(3)
imshow(C);

运行结果如下所示:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44401286/article/details/94729248