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

Matlab内图片的拉伸

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
7 {' `. E4 v/ X' D
Matlab里面显示一张图片的话,长宽比取决于图片的横向纵向像素点数。
8 W/ _9 Q) _, v( e+ J如果一张图片是433×433的话,那么imshow之后,就会按1比1比例显示,即使你拉伸窗口。# T% n' N  h0 k8 W( P8 o6 Z; g
' e! N! w# K* \' |4 F/ _
fname = 'frog.bmp';) c6 y% m& d  C! b3 h7 U) B/ Y3 A
A=imread(fname);
5 y+ a4 ~& ^8 B& {; \$ f  h$ ]" uimshow(A);
- }( b( M& g% H5 Z6 J: x# Fset(gcf,'position',[100 100 400 800]);7 z1 H' V- S! A' |) Y9 _$ x0 Q2 p
效果如下:
! \: @' P# N( B  i/ \9 |9 n8 A

* h5 _5 e8 a  }  b0 u' e( x. s! C& A% p1 R0 Y3 y5 v
怎么能让图片充满整个画框呢。可以用画图板打开,拉伸图片,然后重新保存。
) H: ?, _3 [5 P' [; o% l: d或者写个函数
4 @3 b8 B' ~8 R5 _" B# n, X# }5 s0 q! g: {9 r
B= figure_stretch(A,1,3);9 f5 S6 s5 k9 L
figure, l* j& A( w1 R3 A
imshow(B);
% a! l8 i2 s$ J: K6 k7 k: Vset(gcf,'position',[100 100 400 800]);4 q/ h9 @; f5 t
) [, |% I! E4 Z" v
效果如下:
) P0 e& w! K4 A% Y3 |: g! Z! J& C) Q! Z- j. T" o4 |$ Q+ R; q7 l

: H# W- v$ P. o- Z! v& w3 `
" _4 Q2 E- a, J( w# T( @- |figure_stretch函数如下:
6 {2 [2 f' C' F" T- K# u- B) Q! h; Z4 Q/ jfunction C=figure_stretch(fname,w_scale,h_scale)
: G! @4 F' S8 H% Stretch the figure.
- m, i2 E+ E  M$ k% Usage:" E! J; j# @' Z/ j8 j+ X( x, m' w
% C=figure_stretch(fname,w_scale,h_scale)- H2 o! o5 i. y/ [$ f
% fname        : name of the figure" z2 [4 _; X: v7 j
% w_scale      : stretch scale in width* s% N4 f0 ^8 q
% h_scale      : stretch scale in hight  e1 J* h" p, z6 n/ u2 U2 X* t
% Example:
5 G3 V% }& b/ `. j  H$ ~0 v$ _% fname = 'frog.bmp';- d# y. y# i( @& y* e& h2 G
% B= B= figure_stretch(fname,1,3);
: z. P# z5 k8 ?! z- y& }% figure0 U, B) t' }- h% D7 R4 r
% imshow(B);
( s+ x* V6 d* ]! e% Author :  Haiyang Cui
/ y! f! j! u: a% EMail  :  ***
8 R; Y+ q1 G8 _. p( \
- ?; ^1 A0 x: [A= imread(fname);0 m7 R; I# n# m7 B( T0 `9 w8 u2 p" G
[I,J,K]=size(A);6 y4 V1 U. m5 u
x0=1:J;2 i! S* s& G/ i' V3 m2 m0 }7 D
y0=1:I;# L" V8 w, D" r, ^2 U
[X0,Y0] = meshgrid(x0,y0);
! Z3 u3 o6 {& Z2 a4 J* HI1 = floor(I*h_scale);
" s- ]8 \9 B4 DJ1 = floor(J*w_scale);3 R& c- I' m' C

  B9 S* U( q# W  N$ ZR = A(:,:,1);- V, b' U# ]8 d4 u  P
G = A(:,:,2);) g% A# \1 u, P! u1 D2 w  ^- E
B = A(:,:,3);, {" ~) i# |% \) }4 t
! q% B/ ]) t# t+ X
% 7 B; k( a+ f( m) r8 D! R/ K' O
x = 1:J1;7 S+ Y  c+ x, ~0 A& t( S
y = 1:I1;
: J6 Q& ?- b. D; `# ]. }[X,Y] = meshgrid(x,y);  V. P) N, m! r+ w7 Y7 i
6 I7 n$ ?! i5 C6 k7 t, D; M* ~
X = X*J/J1;  V7 t* p& U( O5 V% b; r, k( _# l
Y = Y*I/I1;' |. g$ ~) S" c; k% h" _& Y* i$ {
X = double(X);* X5 o+ h; N5 W* \
Y = double(Y);
# `* G6 }) h9 A% G+ kR = double(R);% ^* _5 t! a! P& h
G = double(G);. p' q# ?6 t$ V
B = double(B);
" C( y9 v" b5 s% n  g% C( @. w: x%
3 G% D! q; e9 N4 Z3 s  x& }/ e+ wR1 = interp2(X0,Y0,R,X,Y);
3 o* |1 q) a7 ?G1 = interp2(X0,Y0,G,X,Y);7 \& c. x' K3 y0 U8 a2 i
B1 = interp2(X0,Y0,B,X,Y);2 Q5 r2 `5 u# _4 k: {
C(:,:,1)=uint8(R1);
3 m$ K% o4 e% [1 G6 }& @C(:,:,2)=uint8(G1);
% w% M2 q4 z9 l  M( v2 K6 i. x5 gC(:,:,3)=uint8(B1);
) H8 j6 i3 i4 D  ~7 iend
1 G- ^6 k6 S" ]- d# Q$ y% F) U/ R' N1 ]0 ?

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-6-23 04:48 , Processed in 0.078125 second(s), 26 queries , Gzip On.

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

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

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