|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
0 S$ z8 r* d% G- p; P( F
Matlab里面显示一张图片的话,长宽比取决于图片的横向纵向像素点数。- l @/ }- `' Z0 y: A
如果一张图片是433×433的话,那么imshow之后,就会按1比1比例显示,即使你拉伸窗口。
' {; j! h$ Y9 B- z& B" W$ q5 i' y- Y# v% c) ?
fname = 'frog.bmp';
5 C6 B; Q. F4 ^A=imread(fname);2 {: }( I4 V0 W8 ~4 d( m6 Q2 n
imshow(A);* w) u! b. \1 F/ m9 x, P4 c- e
set(gcf,'position',[100 100 400 800]);
0 J+ `+ h! @% e" ?+ H- F效果如下:
8 ^ g: S9 q, B
2 S8 @$ ^: d% V o& |- f
: G9 g, w' r# \4 o+ Z' P
+ F% n+ H* T& M M% M" L怎么能让图片充满整个画框呢。可以用画图板打开,拉伸图片,然后重新保存。
# N; e7 ^' j$ d! N或者写个函数
" I- J* a( S1 @+ p1 v5 T9 ]0 l. ^0 Q) V( O# {% h9 ~
B= figure_stretch(A,1,3);2 _. [2 _8 W! c9 T. b
figure( }* B- G! [! ]" p; V' X
imshow(B);5 R4 P: S, F. q9 ~ X% p
set(gcf,'position',[100 100 400 800]);# n# p! Q6 q& p$ M2 ?
, ?* t% R* G1 x1 k效果如下:- ^! D' h. m- d! ]; {3 G }
' @/ e! C8 @% s. [, @: o) f
8 B. q8 w1 [0 I& |1 P9 K' J
# ?; M; d& h" K. a1 Q# N) t
figure_stretch函数如下:" @6 K7 b0 w/ o- o9 O8 q
function C=figure_stretch(fname,w_scale,h_scale)
, D" a9 p+ z1 N7 Y% Stretch the figure., T; t2 `% g/ v) f- M% O# w
% Usage:
, g3 [, m7 ?+ ?3 H% C=figure_stretch(fname,w_scale,h_scale)
+ |5 ?: A7 Z: N8 J. \2 l6 a; m% fname : name of the figure X* Y- H/ s5 Y: _
% w_scale : stretch scale in width; R p/ ~6 f6 `8 a6 k
% h_scale : stretch scale in hight/ V# I/ O' K& o$ r& t0 E0 o
% Example: c) n V ]$ O6 S* S: _
% fname = 'frog.bmp';
( D0 D* D$ k# h* B J2 A- }' y% B= B= figure_stretch(fname,1,3);
1 a/ [. f! B! k9 d9 ?% p# h% figure
. t( X8 K4 J7 ?2 I' x# |% imshow(B);: C! Q( J9 U: W* [3 M
% Author : Haiyang Cui
# d: P9 v4 |6 O/ U2 }5 v/ C% EMail : ***7 |/ Y: h6 X, Y: U7 j
# l0 a5 n' {! L) ^6 BA= imread(fname);
3 L( @: P3 j, d[I,J,K]=size(A);6 d N( F0 H1 e+ U6 k3 T
x0=1:J;
4 H1 p8 k* S9 K% ^: sy0=1:I;0 [* p! ~) a! e* u0 \
[X0,Y0] = meshgrid(x0,y0);
! @' F' |8 b5 AI1 = floor(I*h_scale);
& O* a* o- S3 @4 x3 q7 l& @J1 = floor(J*w_scale);0 }# D9 w# T" Z* T4 L( h
: X+ J* b5 j. I2 M1 l& a5 XR = A(:,:,1);9 c9 o- {& A4 ?! k
G = A(:,:,2);) p/ ^+ m6 E# a, Q7 |: |- h; j# w
B = A(:,:,3);
" s3 z2 E/ ]9 i: [* b8 q- c% W3 @. S e1 R
% " K# D4 O, [& ^7 S" ?0 t) j
x = 1:J1;
0 F, l: L* H; @) i. A) |) v% B2 ?9 t$ B" cy = 1:I1; D% d2 g& f0 Q5 G: K, k. E6 z i
[X,Y] = meshgrid(x,y);
@5 ? e, K" _- p. h! [7 z% t5 N% ^# E) e9 I' _% i
X = X*J/J1;
* A3 Y& I0 ^3 z9 ~! CY = Y*I/I1;; n4 j/ ^) R4 }/ ^' t
X = double(X);/ i8 R' p2 h' E* M; c6 q( r5 t. R* H
Y = double(Y);
7 @- @; d K. B+ n. q+ BR = double(R); m& s6 X+ c/ i
G = double(G);* T/ O6 Y/ R" R- Q! R' V
B = double(B);
, c* ?5 f0 t' z% T9 {! j- F%+ I I7 g# L- {+ @/ D1 s) n
R1 = interp2(X0,Y0,R,X,Y);
+ J; h' P4 E& uG1 = interp2(X0,Y0,G,X,Y);
% y P* K7 ?: V* ]B1 = interp2(X0,Y0,B,X,Y);- z4 ?( h+ g- m! b
C(:,:,1)=uint8(R1);4 t# I! }9 [" T. P* A. z
C(:,:,2)=uint8(G1);7 g; {1 S. v9 q7 G$ i
C(:,:,3)=uint8(B1);( w# v- S4 x/ d+ ?# }* [% Y
end. R3 I2 P+ q8 k6 w3 Q; D
9 g: J2 l- M {+ P |
|