Professional Documents
Culture Documents
XỬ LÝ ẢNH SỐ - Tân
XỬ LÝ ẢNH SỐ - Tân
L mt mn khoa hc cn mi
m, bao gm cc vn c
bn:
H Thng x l nh
Cc vn c bn trong x l
nh
H Thng X L nh
Thu Nhn nh
Phn Tch nh
X L nh
Lu Tr nh
Thu Nhn nh
Thu Nhn qua Camera di dng cc tn
hiu tng t hoc s ha.
Thu nhn t v tnh qua cc sensor, nh,
trang c scan
Gm cc bc:
S ha (digitalizer)
Ly mu
S ha bng lng ha
Thu Nhn nh
Biu din mu, gm 3 thuc tnh
ch yu trong cm nhn mu:
chi (Brightness)
Sc thi mu (Hue)
bo ha (Saturation)
Thu Nhn nh
Tng hp mu v snh mu: theo
l thuyt 3 mu ca Thomas cc
mu c tng hp t 3 mu c
bn: , lc, l.
C th tng hp mu bng :
Mu X = x1 + x2 xanh + x3 l
x1 , x2 , x3 l cc h s tng hp
Thu Nhn nh
Cc phng php biu din nh:
M lot di
M xch
M t phn
Thu Nhn nh
Cc nh dng nh c bn
trong x l nh
nh
nh
nh
nh
IMG
PCX
TIFF
GIF
nh IMG
L nh en trng.
Header gm 16 bytes:
6 bytes u nh du nh dng
IMG: 0x0001 0x0008 0x0001
2 bytes tip theo cha di mu
tin
4 bytes m t kch c pixel
2 bytes s pixel trn mt dng nh
2 bytes s dng nh trong nh
nh IMG
nh c nn thnh tng dng,
mi dng gm cc gi, cc dng
ging nhau cng c nn thnh
mt gi, gm 4 loi gi:
Gi cc dng ging nhau
Gi cc dy ging nhau
Dy cc pixel khng ging nhau,
khng lp li v khng nn c
Dy cc pixel ging nhau
nh PCX
S dng phng php m lot di
RLE (Run Length Encoded).
File PCX gm 3 phn: header,
image data, bng mu m rng
nh PCX
Header: gm 128 bytes
nh TIFF
Gm 3 phn chnh: Header (IFH), IFD,
DE (bng mu m rng)
IFH (Image File Header):
1 word: kiu to tp trn my tnh
PC hay Macintosh. ( 4D4DH
Macintosh, 4949H PC)
1 word: version (gi tr l 42)
2 word: gi tr Offset theo byte t
u file n IFD
nh TIFF
IFD (Image File Directory): c th c
1 hay nhiu IFD cng tn ti trong
file
2 bytes: cha cc DE (Directory Entry).
12 bytes: cc DE xp lin tip
4 bytes: Offset ti IFD tip theo
nh TIFF
DE Directory Entry (bng mu m rng)
: gm 12 byte, chia lm 4 phn:
2 byte: du hiu m file c xy dng
2 byte: kiu d liu tham s nh
BYTE (1 byte)
ASCII (1 byte)
SHORT (2 byte)
LONG (4 byte)
RATIONAL (8 byte)
nh GIF
S dng thut ton nn LZW (Lempel-Ziv-Welch)
da vo s lp li ca nhm im, tng u th
khi s mu tng ln so vi cc kiu nh khc.
nh dng:
GIF Note
GIF Header
Global Palette
Header Image
Palette of Image 1
Data of Image 1
, k t lin kt
.
; GIF terminator
nh GIF
GIF note: c gi tr GIF87a, 3 k t u:
kiu nh dng, 3 k t sau: version
GIF Header: m t thng s ton b
nh
rng hnh rasier theo pixel 2 byte
cao hnh rasier theo pixel 2 byte
Cc thng tin v bn mu, hnh hin
th,
Thng tin mu nn 1 byte
Phn cha dng 1 byte
nh GIF
Global Palette:
Bit
Th t
byte
M t
Red
Gi tr mu theo index 0
Green
Blue
Red
Gi tr mu theo index 1
Green
Blue
..
...
nh GIF
Header of Image:
Cc Bit
Th t
byte
M t
00101100
K t lin kt nh (*)
Cn tri nh
2,3
Cn nh trn
4,5
rng nh
6,7
cao nh
8,9
MI000pixel
10
nh GIF
Palette of Image 1
Data of Image 1: chui cc gi tr c
th t ca cc pixel mu to nn nh
GIF terminator: cung cp tnh ng
b cho u cui ca nh GIF
Tch chp
Khi nim bt bin trt: mt h thng gi l
bt bin trt nu dch chuyn u vo th
cng to nn mt dch chuyn tng ng ca
u ra.
Tch chp c tnh cht lin quan n bin i
Fourier: bin i Fourier ca mt tch chp
bng tch n gin cc bin i Fourier ca cc
tn hiu .
F[H(x,y) X I(x,y)] = F[H(x,y)] . F[I(x,y)]
Tch chp
Hm tnh nhn chp vi thut ton dng trong moi trng hp
cn tnh tch chp, vit bng C:
void Nhanchap(){
int sum=0;
int Lc=(w+1)/2;
int col;
int row;
for(int i=1;i<=N;i++)
for(int j=1;j<=N;j++){
sum=0;
for(int k=1;k<=w;k++)
for(int l=1;l<=w;l++){
col=i-k+Lc;
row=j-l+Lc;
if(col!=0 && col<=N)
if(row!=0 && row<=N)
sum+=imageIn[col][row]*H[k][l];
}
imageOut[i][j]=sum;
}
}
iu khin mc xm
Gin tng ph
Gim nhiu
Lm trn nh
Ni suy
Phng ij
Ni bin
Lc
Lm trn nhiu bng lc tuyn tnh, lc
trung bnh v lc di thng thp.
Ty loi nhiu m ta p dng b lc thch
hp
Lc trung bnh c trng s chnh l thc
hin chp nh u vo vi nhn chp H:
1 1 1
H = 9 1 1 1
1 1 1
Lc
Lc thng thp:
1 b 1
H = 1/(b + 2)2 b b2 b
1 b 1
Lc ng hnh (Homomorphic filter):
..
ng dng c bn mt s hm Java
trong vic x l nh
S dng class BufferedImage trong java, class
cung cp vic qun l nh trong b nh, cc
phng thc lu tr, x l, v nhn pixel.
Mt bufferedImage c mt ColorModel v mt
Raster d liu nh.
ColorModel biu th mu biu din ca cc pixel
Raster thc thi cc chc nng:
Th hin nh
Bo tr nh trong b nh
H tr to nhiu nh con t mt b m d liu nh n
Cung cp cc phng thc truy cp cc pixel nh
c nh
load mt nh t file nh ta s
dng code:
BufferedImage img = null;
try {
img = ImageIO.read(new File(imageSource"));
} catch (IOException e) { }
imageSource l ng dn n file nh cn c
Khi class BufferedImage s nhn nh dng nh nh
phn m rng hoc cc thng s c trng ca nh v tin
hnh gii nn theo nh dng nh.
X l nh c bn
S dng cc option ca
BufferedImage class:
LookupOp:
ConvolveOp: s dng convolution kernel
lm khng gian tnh ton output pixel
bng cch nhn input pixel vi kernel,
kernel l cc ma trn.
RescalesOp: thc hin thay i t l trn
tng pixel nh ngun bng cch nhn
pixel vi gi tr mu bi mt nhn t t l
ri cng vi offset.