EDA365电子论坛网

标题: matlab中如何进行图像叠加 [打印本页]

作者: uperrua    时间: 2020-1-2 10:29
标题: matlab中如何进行图像叠加
" B8 x5 f' t1 G& _
如果我们想在一幅图像上加上一个背景,那么我们可以将两幅做加法运算,在matlab中既可以使用imlincomb()函数,也可以使用imadd()函数。
1 f9 N+ R7 y! y
! Z( @6 ?. E  D3 Dclose;
! I3 l2 c; @+ c5 Eclear all;* {; ]6 d0 g$ k
clc;/ i9 d# P* F& M1 `; B3 Y
A1 = imread('rice.png');
0 p, s& G8 K2 X7 U. S( r1 PA2 = imread('cameraman.tif');  m( q* f" k0 ]5 y" f" P2 N, @
K = imlincomb(0.5,A1,0.5,A2);
& d: ]6 n( B: q, \  }subplot(1,3,1),subimage(A1);
! J, G. e% E8 w8 s6 T5 ^) Xtitle('原始图像1');6 ]* N  r5 s! k
subplot(1,3,2),subimage(A2);
. y6 x' f& M' i5 O- g  S- @title('原始图像2');
$ j% I) H6 L& n0 Z/ |subplot(1,3,3),subimage(K);2 R7 v* k% r4 A- V# G
title('0.5X图像1+0.5X图像2');( q( T. c/ y# Z& P1 i2 v% X

7 {9 q, x/ S8 O+ s  M! c5 T ! H" z  f, Q& l% ]3 c: y! \
* p# u0 P6 L: q& ^
改变两幅图像所占的比例:
3 I2 H/ d4 X( N; W( a6 j6 }9 S
$ t7 w# i- o: }- R& m第一幅仅占10%,第二幅占90%。; C$ |2 c: t3 @

& i) F, z0 v2 R; \, M& f) [
+ r' z0 Y: p1 s: X7 P9 l2 t; p4 i! H7 m( w# n5 `
可以明显看到,第二幅图像更加明显。* B7 u7 C+ S8 k" e1 P7 F
9 ]! `5 J# n: L
使用imadd()函数同样可以实现图像的加法运算;
9 d1 a6 n' o9 F( L/ `, }4 l9 F9 t: W0 a/ V" F
close;  E$ y4 F8 m1 A7 D5 Q: d1 B3 L
clear all;; `- K3 a7 B) G6 b7 G7 Y0 |& \8 K* g/ S
clc;7 Q8 y8 j  y: s  K  n3 y
A1 = imread('rice.png');
2 S# p) c' Q+ \/ S/ W* s& HA2 = imread('cameraman.tif');+ E9 P5 a' z6 S6 e  p
K = imadd(A1,A2,'uint16');%图像相加,防止像素值超出255,因此把结果存为16位, Z6 k" h1 L; h; @' o( V! W# Y
figure;
: `# ?1 g6 H; `/ Vsubplot(1,3,1);imshow(A1);title('rice原始图像');' K( W  y" ?: J1 C6 l, d
subplot(1,3,2);imshow(A2);title('cameraman原始图像');* r7 a/ c# l: W' `+ l4 c6 I0 c
subplot(1,3,3);imshow(K,[]);title('相加图像');%注意使用imshow函数时,要加上[],以使得像素值压缩至0—255! V1 c( x9 ?" F
0 A8 O. V3 O9 g% H: H+ w; X7 T

$ A! j+ d- S3 L, Y& I. W9 q# a% U( L$ U4 t

作者: xixihahaheihei    时间: 2020-1-2 18:42
这个还是要实践的




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2