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

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);

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

评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值