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

Matlab内图片的拉伸

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

; E! }. z1 H+ P; H; _Matlab里面显示一张图片的话,长宽比取决于图片的横向纵向像素点数。; V0 q+ }; x: `$ H
如果一张图片是433×433的话,那么imshow之后,就会按1比1比例显示,即使你拉伸窗口。
, R/ ^- D& y7 m* x
; l4 ^7 b9 J* }; Xfname = 'frog.bmp';" g8 t% _4 _2 e$ g- Z, S% e
A=imread(fname);
, U8 @! ?: I; E5 H5 fimshow(A);! e8 A- `$ q1 y
set(gcf,'position',[100 100 400 800]);) c$ P. v5 g6 I9 e6 Q* X" {9 S
效果如下:, O. E* Y8 F1 e8 R. W
% J3 a9 w8 E+ A1 v1 Z6 Z! v" w* h

7 ]' c6 g1 |' s2 j& Y
! X9 }  n  R1 v3 j" ~' m怎么能让图片充满整个画框呢。可以用画图板打开,拉伸图片,然后重新保存。
: E( l8 ^0 f" N; s7 V/ O0 P或者写个函数
- C" V: w3 |; u( \7 O3 m7 |1 r7 k7 Z3 R3 w  [( Y& @
B= figure_stretch(A,1,3);
0 m1 a2 Z/ f! w! h) g0 dfigure6 o" I8 i! P, d
imshow(B);3 J+ z  a; G2 h& W
set(gcf,'position',[100 100 400 800]);
+ e+ l3 p5 z6 p1 [5 {# h- t. d7 j& U1 f& Y
效果如下:
+ f, {" b0 k" c! L' ^
3 ?9 Q( \( f8 T1 h$ c
% j# a9 v/ @% P  A, V% n0 j' h1 i9 s% I8 m8 a) t( [
figure_stretch函数如下:+ M' g9 B. Z: H4 B, |( J
function C=figure_stretch(fname,w_scale,h_scale)
; Z/ `9 g8 H2 w, W* g% Stretch the figure.
9 W0 M% m3 m, H7 a6 t% S* t8 q% Usage:( `  A0 Y# x: j
% C=figure_stretch(fname,w_scale,h_scale)4 z: f2 R- w* i# R* s
% fname        : name of the figure
9 W+ C. P5 G4 R- W. v% w_scale      : stretch scale in width
; q# e1 U/ j9 u/ \% h_scale      : stretch scale in hight
! t5 k: f2 g5 c3 l5 t% Example:
+ }2 V3 t* x: U( ?8 Q5 n$ Z4 G% fname = 'frog.bmp';+ o  Z* N* ~5 s
% B= B= figure_stretch(fname,1,3);4 O2 O4 B3 Z' ~$ q
% figure
$ ]; H3 c$ Y, h. S; r2 }% imshow(B);7 S) R2 d0 Y7 F1 f% M4 b4 ~
% Author :  Haiyang Cui; s0 V) g  J. r- B$ n& H& R* \
% EMail  :  ***
3 U) [& ?( S+ ?, k* n! P" }  z; }) t, x
A= imread(fname);
" ?$ M2 O, `: {) r[I,J,K]=size(A);% S6 q& E6 t2 o1 a0 ]2 v
x0=1:J;/ H3 P' [9 e1 E  F6 M2 D
y0=1:I;
0 @7 O" [+ ~5 P! h! }[X0,Y0] = meshgrid(x0,y0);
4 k1 X8 T5 s3 B2 {' a- dI1 = floor(I*h_scale);
$ f* ~: m+ J% |, W( RJ1 = floor(J*w_scale);" b* [' B$ L4 x7 V7 P
+ h9 ]- f8 S( h5 s2 l+ H
R = A(:,:,1);
# {* J) A. S3 [7 [4 WG = A(:,:,2);
6 R( p9 a% }2 l1 E% IB = A(:,:,3);
" i( U0 K8 {$ @* \
, c5 G) B) f7 Y" h: y%
6 H7 I1 o- n3 @/ u0 |x = 1:J1;
9 ]: T$ F( N7 D( H* H7 ]y = 1:I1;0 ~# J* p" U: {! V$ O
[X,Y] = meshgrid(x,y);
" e2 x1 y2 k3 z8 _% m
' e- f! c* G* ?; c1 x9 C' zX = X*J/J1;
9 t2 h; |5 G: `9 ^1 u3 r& iY = Y*I/I1;* h. I+ ~. Q" I% K
X = double(X);
1 S6 `  Z. b1 f1 j' _$ ]: YY = double(Y);6 u  [( q! I) k( n) g
R = double(R);
$ }+ v, w6 ^' f8 B3 O% i1 U% Y9 RG = double(G);/ K9 x, _0 G$ u5 S
B = double(B);
# H+ b1 B  Y. ?3 h* }%1 S4 E4 F. w2 ]6 R) F, Y! l; w
R1 = interp2(X0,Y0,R,X,Y);
8 k1 Z! |; c% N7 j( }* u' BG1 = interp2(X0,Y0,G,X,Y);$ H! i3 ?8 O2 ]' p: F/ W
B1 = interp2(X0,Y0,B,X,Y);7 H1 [" {, N! B% m# d
C(:,:,1)=uint8(R1);+ Q! E% d( O, u8 D  }
C(:,:,2)=uint8(G1);2 B8 O& J7 Z7 O* |
C(:,:,3)=uint8(B1);5 S; W% j) s$ l2 I% d/ @) e+ Z
end: n& R5 [4 M! U9 x, y

) R! R" Z; ~! ?; |! i/ g

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-5 06:34 , Processed in 0.156250 second(s), 26 queries , Gzip On.

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

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

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