|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
4 n& @. @' k h) }; Q" a+ } D
Matlab里面显示一张图片的话,长宽比取决于图片的横向纵向像素点数。* k7 y4 N0 y ?6 O: X
如果一张图片是433×433的话,那么imshow之后,就会按1比1比例显示,即使你拉伸窗口。
% a! a1 t6 P3 J1 K, E1 @
. R& T; B6 G+ C* K& Q* K/ V8 u* [fname = 'frog.bmp';
& L- R2 ^( s8 e, p& O7 K( ?A=imread(fname);; Y& F C" d* D& M. Y2 Z
imshow(A);' ~- W# a1 o! W# F. T+ t3 ?4 B
set(gcf,'position',[100 100 400 800]);3 ?9 I% {- Y6 T9 H" x$ C
效果如下:! Z3 @& h3 P% w" b# ]% w. V
) f5 b8 Z# `6 F. x8 Y0 P) ?
7 A' J, G! r& q0 w0 N7 G
9 E; g3 M9 n# ^3 D
怎么能让图片充满整个画框呢。可以用画图板打开,拉伸图片,然后重新保存。3 ?, l' o y$ ?% {" k9 F
或者写个函数3 z( K& o- O+ a o2 Y
* e1 p7 ^% b: O) P( j
B= figure_stretch(A,1,3);
+ U q+ }' D5 [+ ~6 X: q O. Q( x8 Afigure
2 N1 l" c4 P4 a8 wimshow(B);5 m/ W! G8 F2 p/ \5 @
set(gcf,'position',[100 100 400 800]);( a+ L! Y" J& z9 [
& Z. G+ I' l- Z0 |9 w. f
效果如下:
: \1 ~0 J; B) l- L4 G
- V/ ~6 u* x0 }( f/ h& c7 @
4 D- w! Z1 a% Z4 c% ]0 B
8 B/ Q. _& c& wfigure_stretch函数如下:
0 N) q- H' [( nfunction C=figure_stretch(fname,w_scale,h_scale)& W/ {. N' e2 r0 y& ]4 l5 O
% Stretch the figure.
) A3 e5 |, K6 W0 G2 B& K% Usage:
: T0 ]' t X. R. Y% C=figure_stretch(fname,w_scale,h_scale)- u& E; z8 E- x) t$ o
% fname : name of the figure
4 G+ m# g4 C p! b" S# t/ _% w_scale : stretch scale in width
$ D1 h# w- {) @8 Z: f, g2 N% h_scale : stretch scale in hight0 N5 i" L3 I, V# V# J. c
% Example:
/ ]# d6 V; C7 ~4 `% fname = 'frog.bmp';
, F+ R# C8 Y+ M6 M& I% B= B= figure_stretch(fname,1,3);2 f! m3 r" E; d# Z
% figure
' h1 m! F8 U# @4 l; {; p0 L `% imshow(B);
8 r: G" ^" F7 [9 }1 O8 v% Author : Haiyang Cui4 V+ t T$ V3 F* E7 ?
% EMail : ***
4 m( G7 a1 b: n! ^( K: w8 b- @: J6 z- }( l$ M
A= imread(fname);, W$ }7 W5 i: U" k2 Q2 g# ~
[I,J,K]=size(A);1 n; I# `$ B U
x0=1:J;
6 |' V# v9 g$ C6 Iy0=1:I;4 J* B3 ~3 H, y- y0 \! h
[X0,Y0] = meshgrid(x0,y0); q; f4 m) g+ ?' i+ S2 e
I1 = floor(I*h_scale);
2 k) e& T3 B$ l( T9 ^) f3 CJ1 = floor(J*w_scale);
' T) s* f& d2 U; z' {3 Y* i# T
( X& N+ t2 ]" {8 bR = A(:,:,1);- Q" Y$ n: D5 t% H5 \9 z
G = A(:,:,2);. a! `6 i% { r; ~; t/ v* g
B = A(:,:,3);" J+ ~% D$ C! n
! D' L, [" O6 \% c$ |$ C2 Q" R0 n
% - M& s% s1 h' c; W
x = 1:J1;
# K2 C6 R# _9 @2 X# U9 J+ Y6 [y = 1:I1;
( B6 ]! H' \, ~) j! I[X,Y] = meshgrid(x,y);
2 A$ \' e+ r" k. |
! W! l8 K$ g5 ~7 C# r) U7 uX = X*J/J1;
- R, K0 r2 p* x' _8 F+ k; mY = Y*I/I1;
& r$ F% n; C; o2 q" N+ ZX = double(X);6 h# b p' ~# P: t
Y = double(Y);
9 x/ _, {, j; B( I! W6 HR = double(R);
1 f% M7 E2 x X3 sG = double(G);
, V6 U: U9 i5 X @. RB = double(B);6 i, f; d4 _, c) ~3 j! U! t
%5 |* U, \. O" F0 t: J* w [" B. I
R1 = interp2(X0,Y0,R,X,Y);) A3 N- f" Y4 B9 g; ~+ M0 ]
G1 = interp2(X0,Y0,G,X,Y);
, Q5 | h" X+ N1 |: B2 o( EB1 = interp2(X0,Y0,B,X,Y);
% f! I" O Z1 d4 YC(:,:,1)=uint8(R1);
4 d" ? D! h# D2 MC(:,:,2)=uint8(G1);
8 L) w5 s H5 H* [2 p; c1 ]1 ]C(:,:,3)=uint8(B1);6 E4 S- ~, W# c' Q( ^
end. K6 @5 k3 U6 q% S3 T1 X7 C
9 m. ^) R0 ~% F4 ^" ?* ` |
|