Xem mẫu
- H×nh 7.3 Phæ tÇn sè cña tr¹ng th¸i liªn tôc vµ tr¹ng th¸i ®· lÊy mÉu cña
mét tÝn hiÖu.
1
X ( e jT )
NÕu (7.11)
X a ( j ) -
T T T
X (e jT ) xa (kT )e jkT
vµ
k
KÕt hîp biÓu thøc (7.10) vµ (7.11)
T
T jt
x a (t ) X ( j)e d
2
T
V× vËy
T
T jTk jt
x a (kT )e
x a (t ) e d
2 k
T
Thay ®æi thø tù tÝnh tæng vµ tÝch ph©n,
/T
T
e j(t kT ) d
x a (t ) xa ( kT )
2
k / T
TÝnh gi¸ trÞ cña tÝch ph©n chóng ta ®îc
(t kT )
sin
T (7.12)
x
x a (t ) (kT )
a
k
(t kT )
T
BiÓu thøc (7.12) lµ phÐp néi suy cho phÐp kh«i phôc c¸c tÝn hiÖu liªn tôc
theo thêi gian xa(t) tõ c¸c mÉu cña nã.
Trêng hîp 2-D: C¸c ®Þnh lý lÊy mÉu 2-D gi¶ thiÕt r»ng hµm giíi h¹n
b¨ng fa(x,y) cã thÓ kh«i phôc mét c¸ch hoµn toµn tõ c¸c mÉu mµ tho¶
m·n
1 1
(7.13)
TH TV
2WH 2WV
ë ®©y WH vµ WV biÓu diÔn gi¶i th«ng theo hezt cña tÝn hiÖu 2-D theo
chiÒu däc vµ theo chiÒu ngang. NÕu biÓu thøc (7.13) ®îc tho¶ m·n, vµ
135
- fa(k1TV,k2TH) biÓu diÔn tÝn hiÖu lÊy mÉu 2-D, th× fa(x,y) cã thÓ kh«i phôc
tõ fa(k1TV,k2TH) dïng biÓu thøc néi suy:
( )
( )
sin ( y k 2TH )
TH
( y k 2TH )
(7.14) TH
Chøng minh cña c¸c biÓu thøc (7.13) vµ (7.14) t¬ng tù nh trêng
hîp 1-D vµ ®îc ®Ó l¹i nh mét bµi tËp. Mét chó ý lµ phæ tÇn sè cña mét
tÝn hiÖu lÊy mÉu 2-D tuÇn hoµn trong miÒn tÇn sè, nh trong h×nh 7.4. TÝn
hiÖu t¬ng tù cã thÓ ®îc kh«i phôc b»ng c¸ch t¸ch ra mét chu kú tõ phæ
tÝn hiÖu mÉu.
7.4 §Þnh lý lÊy mÉu ¸p dông lªn c¸c ¶nh
Mét ¶nh ®îc t¹o nªn b»ng c¸ch chiÕu mét c¶nh 3-D lªn mÆt ph¼ng 2-
D. PhÐp chiÕu nµy biÓu diÔn mét phÐp biÕn ®æi tõ nhiÒu vµo mét. Cã
nghÜa lµ mét ®iÓm ¶nh kh«ng t¬ng øng duy nhÊt víi mét ®iÓm trong
c¶nh 3-D. §iÒu nµy ®îc minh ho¹ qua h×nh 7.5. Gi¶ sö r»ng ¶nh nµy
chøa N ®iÓm ¶nh theo híng x. Sau ®ã cho c¸c vËt thÓ S1 vµ S2 trong h×nh
7.5 chóng ta cã
10
mÐt (7.15)
x1
N
3
vµ mÐt (7.16)
x 2
N
§Þnh lý lÊy mÉu ®ßi hái:
1
x1
2W1
136
- (7.17)
1
TH
WH
WV
2
TV
TV
TH
H×nh 7.4 Phæ tÇn sè cña mét tÝn hiÖu lÊy mÉu 2-D.
1
vµ (7.18)
x 2
2W2
ë ®©y, W1 lµ tÇn sè cao nhÊt theo híng x cho ¶nh ®îc t¹o bëi mét m×nh
vËt thÓ S1, vµ W2 lµ tÇn sè cao nhÊt theo híng x cho ¶nh ®îc t¹o bëi
mét m×nh vËt thÓ S2. Bëi v× chóng ta chØ cã mét ¶nh bao gåm S1 vµ S2 nªn
W1 = W2 vµ N ®îc x¸c ®Þnh theo
3 1
(7.19)
x 2
N 2W2
N = 6W2
V× thÕ (7.20)
137
- H×nh 7.5 ¸nh x¹ mét c¶nh 3-D lªn mÆt ph¼ng ¶nh 2-D.
Thay N trong biÓu thøc (7.15) chóng ta ®îc
10 10 1
x1
6W2 6W1 2W1
V× thÕ, gi¶ thiÕt lÊy mÉu kh«ng tho¶ m·n cho vËt thÓ S1, vµ ë ®©y c¸c
th«ng tin cña miÒn nµy trªn ¶nh kh«ng thÓ kh«i phôc qua phÐp néi suy.
Nãi mét c¸ch kh¸c, c¸c vËt thÓ gÇn camera cã kh¶ n¨ng tèt h¬n khi lÊy
mÉu, trong khi c¸c vËt thÓ xa camera th× dÔ dµng khi kh«i phôc mÉu.
7.5 Nh©n ®«i ®é ph©n gi¶i trªn ¶nh
KÕt qu¶ cña ®Þnh lý lÊy mÉu cã thÓ dïng ®Ó t¨ng ®é ph©n gi¶i trªn ¶nh.
Dï sao ch¨ng n÷a, dùa vµo kÕt qu¶ ®· ®¹t ®îc chóng ta cã thÓ kÕt luËn
r»ng nãi chung th× kh«ng thÓ t¨ng ®é ph©n gi¶i cña ¶nh lªn ®îc. Trong
c¸c ¶nh, c¸c vËt thÓ ®¸ng quan t©m th«ng thêng ®îc che hÕt bÒ mÆt cña
¶nh. V× thÕ, nÕu c¸c ®èi tîng trong nÒn kh«ng ®îc cho ®é ph©n gi¶i d
thõa, c¸c vËt thÓ cËn c¶nh th«ng thêng cã ®ñ mÉu ®Ó cho phÐp dïng c¸c
®Þnh lý lÊy mÉu.
138
- 7.5.1 Nh©n ®«i ®é ph©n gi¶i dïng sù thÓ hiÖn tÇn sè cña lý thuyÕt lÊy
mÉu
Chóng ta ®· chó ý ë trong ch¬ng 6 r»ng phæ tÇn sè cña mét ¶nh gi¶m
nhanh cïng víi sù t¨ng cña tÇn sè. Chóng ta cã thÓ dïng nhËn xÐt nµy vµ
®Þnh lý lÊy mÉu Whittaker-Shannon ®Ó t¨ng ®é ph©n gi¶i. Gi¶i thuËt nµy
theo c¸c bíc sau:
1. Rót ra FFT cña ¶nh cã kÝch thíc N N, cô thÓ
I ( k1 , k 2 ) FFT {i (n1 , n2 )( 1) n1 n2 }
phæ tÇn sè sÏ ph¶i cã gèc to¹ ®é ë trung t©m cña m¶ng FFT.
Thªm c¸c ®iÓm 0 vµo FFT nh giíi thiÖu trong h×nh 7.6 ®Ó t¨ng kÝch
2.
thíc cña nã lªn 2N 2N.
Rót ra biÕn ®æi ngîc FFT cña biÕn ®æi tÇn sè më réng. KÕt qu¶ thu
3.
®îc lµ ¶nh gèc víi ®é ph©n gi¶i t¨ng gÊp ®«i. CÇn chó ý lµ c¸c vËt
thÓ kh«ng lÊy ®ñ mÉu trong ¶nh gèc th× kh«ng cung cÊp mét sù ph¸t
triÓn trong ®é ph©n gi¶i.
§Ó thùc hiÖn c¸c ph¬ng ph¸p trªn chóng ta sÏ b¾t ®Çu víi ¶nh kÝch
thíc 128 128 ®iÓm vµ 256 møc x¸m trong h×nh 7.7a. ¶nh ®· cã s½n
trªn ®Üa víi file cã tªn lµ CAMEL.IMG. Thùc hiÖn thuËt to¸n trªn ®îc
cho trong Ch¬ng tr×nh 7.2. KÕt qu¶ ¸p dông trªn ¶nh ®îc cho trong
h×nh 7.7b. Râ rµng lµ rÊt khã kh¨n ®Ó nhËn ra ngêi cìi trªn l¹c ®µ, nÕu
¶nh gèc mÆt ngêi ®ã cha ®îc lÊy ®ñ mÉu.
Ch¬ng tr×nh 7.2 ENLQFFT.C nh©n ®«i ®é ph©n gi¶i cña mét
¶nh qua FFT.
/*This program utilizes 2-D FFT to double the size of an image.*/
#define pi 3.141592654
#include
#include
#include
#include
#include
#include
#include
#include
void bit_reversal(unsigned int *, int , int);
139
- void WTS(float *, float *, int, int);
void FFT(float *xr , float *xi, float *, float *, int , int) ;
void transpose(FILE *, int, int);
void FFT2D(FILE *, FILE *, float *, float *, unsigned int *,
int,int,int);
void main()
{
int N,m,i,j,N2,N4,m2,n2,ind;
unsigned int *L;
float *wr,*wi;
FILE *fptri,*fptro,*fptrt;
double nsq;
float *buffo,*buffi;
unsigned char file_name[14],ch,*buffr;
float max,min,scale;
clrscr();
printf("Enter file name for image to be enlarged -> ");
scanf("%s", file_name);
fptri=fopen(file_name,"rb");
if(fptri==NULL)
{
printf("\n File does not exist.");
exit(1);
}
nsq=filelength(fileno(fptri));
N=(int)sqrt(nsq);
m=(int)(log10((double)N)/log10((double)2));
fptro=fopen("FFT1.img","wb+");
/* file for storing FFT of image.*/
again :
gotoxy(1,2);
printf ( " ");
gotoxy(1,2);
printf("Enter file-name for enlarged image -> ");
scanf("%s",file_name);
if(((stricmp("FFT1.img",file_name))==0)||
((stricmp("temp.img",file_name))==0)||
((stricmp("IFFT2.img",file_name))==0))
{
140
- printf("This is a reserved file name. Use some other name.");
2
N N
2
0’s 0’s
N
2
2
T
T 1
2
N FFT cña ¶nh T
0’s
0’s
H×nh 7.6 Thªm c¸c sè 0 vµo FFT thu ®îc ¶nh cã tÇn sè më réng.
goto again;
}
gotoxy(1,2);
printf ( " ");
ind=access(file_name,0);
while(!ind)
{
gotoxy(1,3);
printf("File exists. Wish to overwrite? (y or n)-->");
while(((ch=tolower(getch()))!='y')&&(ch!='n'));
putch(ch);
switch(ch)
{
case 'y' :
ind=1 ;
break ;
141
- case 'n' :
gotoxy(1,3);
printf(" ");
gotoxy(1,2);
printf (" ");
gotoxy(1,2);
printf("Enter file name -->");
scanf("%s",file_name);
ind=access(file_name,0);
}
}
H×nh 7.7 "CAMEL.IMG" vµ ¶nh ®· ®îc phãng to.
N2=N
- /* Allocating memory for bit reversal LUT.*/
L=(unsigned int *)malloc(N2*sizeof(unsigned int));
/* Generate Look-up table for bit reversal.*/
bit_reversal(L,m,N);
/* Allocating memory for twiddle factors. n2=N- 1 */
wr=(float *)malloc(n2*sizeof(float));
wi=(float *)malloc(n2*sizeof(float));
/*Generating LUT for twiddle factors.*/
WTS(wr,wi,N,-1);
/* Taking 2-D FFT. */
FFT2D(fptri,fptro,wr,wi,L,N,m,-1);
clrscr() ;
printf(" Adding zeros to FFT of image. \n");
/* Adding zeros to double the size of the FFT.*/
N4=N2
- for(i=0;i>1);i++)
fwrite(buffo,N4,sizeof(float),fptrt);
fclose(fptri);
rewind(fptrt);
/* Taking the inverse FFT.*/
printf("Taking the inverse FFT.\n");
m2=m+1 ;
/* Generating bit reversal I(JT.*/
bit_reversal(L,m2,N2);
WTS(wr,wi,N2,1);
FFT2D(fptrt,fptro,wr,wi,L,N2,m2,1);
clrscr() ;
printf("Last stage in forming enlarged image.");
fptri=fopen("IFFT2.img","rb");
fptro=fopen(file_name,"wb");
buffr=(unsigned char *)malloc(N2*sizeof(char));
max=0; min=1.0e7;
for(i=0;i
nguon tai.lieu . vn