找回密码
 注册
关于网站域名变更的通知
查看: 648|回复: 1
打印 上一主题 下一主题

Matlab内图片的拉伸

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-7-29 13:58 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
# y3 C. g' n" W$ w* {3 K
Matlab里面显示一张图片的话,长宽比取决于图片的横向纵向像素点数。. M! K! B" p8 z1 {2 @
如果一张图片是433×433的话,那么imshow之后,就会按1比1比例显示,即使你拉伸窗口。( F* w" ?% f  q
% z5 ]( ]+ r" U3 H8 ]* C% ~) v- a9 @
fname = 'frog.bmp';. g; k& h3 E" [  n! l. K+ V0 Y
A=imread(fname);
- j! M( J6 c1 H+ A3 a2 d. yimshow(A);
! _) a) S* ?! g! o$ M8 Hset(gcf,'position',[100 100 400 800]);9 B  N- D( ^! \
效果如下:
% j0 p4 F0 {* K' c1 |& [" x! F7 j# T: w6 H
2 B3 h" U1 I5 x

* O# k0 `, q3 ^& K9 z4 m怎么能让图片充满整个画框呢。可以用画图板打开,拉伸图片,然后重新保存。
9 a: e) a1 K9 ?: Y( F' G或者写个函数
: A; U7 x, D* [" Z* G6 ?- X  Z; P# X6 V( P) }1 w
B= figure_stretch(A,1,3);
# D: @0 x/ c1 @3 {figure
3 _5 o/ D& j1 T. zimshow(B);0 k$ B$ I, ~) l2 _: _
set(gcf,'position',[100 100 400 800]);
+ W5 w. r6 |* Q* H9 f! P5 Q6 k$ z8 J/ |* g  I/ l' F: `4 P
效果如下:2 U. P0 }; H3 v& E# }

. @0 `+ j9 J/ t0 f& \! W $ g; D, h+ `: W: A0 n

  n! ?5 E1 R8 U* q' m% ^figure_stretch函数如下:
& z& r4 _+ ?/ ?  d" c; Tfunction C=figure_stretch(fname,w_scale,h_scale)3 f; P4 ^% f) K1 h+ b0 _% X: s
% Stretch the figure.
' c: R3 Y/ `5 F/ j* j% Usage:8 }3 H. I# m$ m' C4 m
% C=figure_stretch(fname,w_scale,h_scale); e' U6 ^3 W1 ~/ C7 \! c, u
% fname        : name of the figure9 m4 f* y) u7 T1 r
% w_scale      : stretch scale in width
/ h9 r( V) j' ?9 \% h_scale      : stretch scale in hight
6 C+ Q5 c2 \0 P5 p/ N/ [% Example:
& h1 p: B% @9 U/ i% fname = 'frog.bmp';/ _0 _" g7 d7 G; g1 o0 ^! x
% B= B= figure_stretch(fname,1,3);3 g4 n( I+ ~& Y
% figure
, K$ d+ D; l7 B! w! ^/ N% imshow(B);3 L) g1 d8 U& z3 k" A5 H& u$ R/ R' j
% Author :  Haiyang Cui
# G2 u) V! X! H5 M% EMail  :  ***! O2 {2 P. o+ n+ h4 j* _
1 w( t+ G. J& r' |3 O( m
A= imread(fname);, c: H/ J- ?. B9 k/ J) P
[I,J,K]=size(A);+ u8 v7 @" o! E) L. ^* W
x0=1:J;
6 N! k1 m) f: E& |y0=1:I;0 g! A7 v. k- ], m8 k" g% [
[X0,Y0] = meshgrid(x0,y0);; z) B$ k5 L5 p: }5 e9 W1 Q
I1 = floor(I*h_scale);
9 @$ h2 s9 o+ Q' B% d3 |) B% pJ1 = floor(J*w_scale);! y3 j! w9 Y% _  g
3 v( x. C: D" H* M) P1 Y0 ^
R = A(:,:,1);% L' I- e, a6 o, `  W
G = A(:,:,2);
. [4 i+ C2 I/ s3 Y6 L& |B = A(:,:,3);
7 z$ W/ v5 n, m8 G- q3 r$ b+ d7 U; i+ d8 g& k3 s% l
%
! K1 t) H: {( p" D( Ax = 1:J1;
7 b7 Q! s; d6 D  e; Iy = 1:I1;
0 N" Z1 L/ T8 v7 a- S, y[X,Y] = meshgrid(x,y);
( i' h* k5 w2 }2 f& M: ?+ O3 s# Q) T; b! k3 P
X = X*J/J1;
$ y9 y' |1 c8 p% h  V8 J- J1 vY = Y*I/I1;
( J- U8 X" w7 G4 X' l. aX = double(X);$ ]% H3 M9 L* r1 n) k
Y = double(Y);
( G- Q' T! l) {0 ER = double(R);4 [% S" ?" J0 f1 b2 L8 G/ i1 ^
G = double(G);/ @( e5 G, A+ S! E  H+ U7 @- g) j
B = double(B);
6 G( F' D4 p/ _# B9 c+ N9 s" _%
( p/ p0 P4 [/ s- |. [4 x0 NR1 = interp2(X0,Y0,R,X,Y);
/ V( b) o0 r( cG1 = interp2(X0,Y0,G,X,Y);2 {4 r. D% ~. g9 |6 O; D/ P
B1 = interp2(X0,Y0,B,X,Y);
/ b: Z/ v" w0 P0 G: {% P/ OC(:,:,1)=uint8(R1);
5 ~( n! G' h3 [/ V: T1 T: J$ v- hC(:,:,2)=uint8(G1);' Z) P$ j. C1 Q2 u0 D7 `% O
C(:,:,3)=uint8(B1);" u1 c! v+ n2 P7 C
end
1 D7 ?1 Q# ~/ Z
* |; Y, z* H3 t0 j, G! E

该用户从未签到

2#
发表于 2020-7-29 14:38 | 只看该作者
Matlab内图片的拉伸
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-24 19:35 , Processed in 0.171875 second(s), 27 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表