|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
. j2 w. u4 M6 I! |+ jMatlab里面显示一张图片的话,长宽比取决于图片的横向纵向像素点数。) p7 m, A" d6 @
如果一张图片是433×433的话,那么imshow之后,就会按1比1比例显示,即使你拉伸窗口。
* I. y5 u0 }4 G3 }" j2 P- ]* K' C3 l" `3 m
fname = 'frog.bmp';
4 K( w; l* w2 X8 Y3 X( b8 e7 RA=imread(fname);
3 G& }/ Q' K" Aimshow(A);. V* Y" }0 O6 X
set(gcf,'position',[100 100 400 800]);2 v8 }; p# T9 C$ P J2 q
效果如下:5 B/ |+ x# P+ p; J3 h3 P/ r$ f+ g
" u4 T+ V. f& I% p; j! l3 _3 `
( d1 a% a. ^: R9 p5 s
( [8 z$ ^0 A# R, u2 j* N0 {
怎么能让图片充满整个画框呢。可以用画图板打开,拉伸图片,然后重新保存。. ?* n, T7 ]9 m0 t+ K3 N' O$ P2 g! p
或者写个函数9 X1 L! ]9 C. P) N
9 K: B6 d6 a0 B7 O9 m9 b5 j
B= figure_stretch(A,1,3);) ~* @ t5 A* C) r7 n0 K
figure# \( x! }7 C1 D. T
imshow(B);
+ j. K: Y) S' pset(gcf,'position',[100 100 400 800]);
) m) C$ T/ s2 l5 W6 @8 U8 j
5 Q! O5 G. x! D$ O s) u* ^效果如下:
$ r& \4 o% @, C. f$ S4 |* x3 E% ^4 y& X+ L
6 R7 \: Z& ]' ]# g9 o D1 C6 t( m
" X5 e C) I: ?& l' E& c) Cfigure_stretch函数如下:! T2 Q: }$ u3 o2 Q
function C=figure_stretch(fname,w_scale,h_scale)
5 I) }2 c0 N0 X d6 G: Q" t% Stretch the figure.- \ I$ S4 ^2 C0 I% A1 Q+ ^
% Usage:
$ r' f a; h5 ]+ T5 p7 k: n) |+ f% C=figure_stretch(fname,w_scale,h_scale)7 ]$ |3 o% z# `" k @! j
% fname : name of the figure
5 j& J5 d i' k) M% w_scale : stretch scale in width
- _" M; w3 k# C* A6 K; }& e4 ~% h_scale : stretch scale in hight
4 i" _% {! r. U8 W9 v+ w$ @% Example:
2 g' u. m8 k1 F) q% fname = 'frog.bmp';
& b) n. i& B! W$ l% B= B= figure_stretch(fname,1,3);" t3 `' U# t# Y6 y G, t" L6 |) j
% figure
5 F1 x: d* @; }6 k+ j% imshow(B);
: C/ F$ l5 `. Z: J7 q$ K/ a% Author : Haiyang Cui* ?" w3 R0 P3 b) H0 Y9 T
% EMail : ***5 a$ E- G% B* ]! i2 m+ D9 D) \
& b) v3 Q: W3 J" d. A) L9 u
A= imread(fname);- i& l" a7 y# R# s" a
[I,J,K]=size(A);
( F' u- k6 f! C' l& d# dx0=1:J;
. f; U7 k% ^6 `0 ?5 My0=1:I;
( p6 Z1 m9 r. v# b1 S' I[X0,Y0] = meshgrid(x0,y0);* K' H# s- L" F3 w9 ^$ }' h0 e( }5 f. |
I1 = floor(I*h_scale);' }; O' d' Q5 l* z" k( C
J1 = floor(J*w_scale);. L% r( j3 S' q
: p. w3 r# d4 w7 p! @8 m* `5 T) MR = A(:,:,1);
; ~, m' f( ~/ t6 \/ \+ VG = A(:,:,2);
7 b' b1 t g3 SB = A(:,:,3);; g+ x- J# o) o9 |) c: Y
" Q a' ~! g, r" N$ W% 9 d+ T4 M0 e9 K' ]3 }5 [) H1 E. p& l
x = 1:J1;4 T1 P* c$ T& o& D( P9 V
y = 1:I1;
+ f: n+ g+ H" u0 H! g5 @! o6 A[X,Y] = meshgrid(x,y);
7 W; _% V$ s- O6 t
4 W9 u+ H/ \% L) GX = X*J/J1;
5 m8 Z* o# }# N7 ~6 z, F& CY = Y*I/I1;
5 `- |8 z. v/ V# L3 IX = double(X);
) ?4 F, \* N8 c* f, ?Y = double(Y);
; [# u9 f8 ?8 } i* Q% ?* ]R = double(R);
+ q( K% _% E! }- EG = double(G);
; H, j0 A! j$ W7 C% G2 _B = double(B);
M* g$ a% n- }) }1 V! Y%; `9 d4 m$ {% J! V( A
R1 = interp2(X0,Y0,R,X,Y);8 q4 J8 p; J! t
G1 = interp2(X0,Y0,G,X,Y);
% P8 M9 { a5 b* ^" N W* ?* S( TB1 = interp2(X0,Y0,B,X,Y);9 x% v6 b% m0 W
C(:,:,1)=uint8(R1);$ F1 S5 |3 @' B) G
C(:,:,2)=uint8(G1);
$ W+ V- P; Q& r4 NC(:,:,3)=uint8(B1);5 F5 [! w& I0 I0 |9 Z# U w
end; E; R2 f$ {+ v
# j+ A+ r0 b% y |
|