1. Các kiểu ảnh , các thao tác ảnh cơ bản trong Toolbox - Trang 1
2. Phép xử lý trên vùng chọn Trang 16
3. xử lý ảnh mờ Trang 23
4. Màu sắc Trang 38
5. Biên đổi ảnh Trang 52
6. Biên đoi không gian ảnh Trang 78
7. Phân tích và làm giàu ảnh Trang 98
8. Các biến đổi hình thái ảnh Trang 129
276 trang |
Chia sẻ: trungkhoi17 | Lượt xem: 507 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Bài giảng về Photoshop, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
h t l ng m t nh .S đi u ch nhậ ả ượ ử ụ ể ấ ượ ộ ả ự ề ỉ
c ng đ c a m t nh là m t kĩ thu t làm giàu nh mà ánh x các giá tr c ng đườ ộ ủ ộ ả ộ ậ ả ạ ị ườ ộ
c a m t nh t i m t kho ng m i . Đ minh ho , hình sau ch ra m t nh có đ t ngủ ộ ả ớ ộ ả ớ ể ạ ỉ ộ ả ộ ươ
ph n th p v i bi u đ c a nó . Chú ý trong bi u đ c a nh , t i sao t t c các giá trả ấ ớ ể ồ ủ ể ồ ủ ả ạ ấ ả ị
t t p t i tâm c a vùng .ụ ậ ạ ủ
112
I = imread('pout.tif');
imshow(I)
figure, imhist(I,64)
- N u ta ánh x l i các giá tr d li u đ tô toàn b vùng c ng đ [0,255] , ta có thế ạ ạ ị ữ ệ ể ộ ườ ộ ể
tăng đ t ng ph n c a nh . Sau đây ta s xem xét m t s kĩ thu t đi u ch nh c ngộ ươ ả ủ ả ẽ ộ ố ậ ề ỉ ườ
đ ộ
a- Đi u ch nh các giá tr c ng đ đ n m t kho ng xác đ nhề ỉ ị ườ ộ ế ộ ả ị
- Ta có th đi u ch nh các giá tr c ng đ trong m t nh b ng cách s d ng hàmể ề ỉ ị ườ ộ ộ ả ằ ử ụ
imadjust khi ta ch ra kho ng c a các giá tr c ng đ trong nh ra .ỉ ả ủ ị ườ ộ ả
- Ch ng h n , mã sau đây s tăng đ t ng ph n trong m t nh c ng đ có đ t ngẳ ạ ẽ ộ ươ ả ộ ả ườ ộ ộ ươ
ph n th p b ng cách ánh x l i các giá tr d li u đ đi n đ y toàn b kho ng giá trả ấ ằ ạ ạ ị ữ ệ ể ề ầ ộ ả ị
c ng đ [0,255]ườ ộ
I = imread('pout.tif');
J = imadjust(I);
imshow(J)
figure, imhist(J,64)
- Hình sau hi n th nh đã đ c đi u ch nh và bi u đ c a nó . ể ị ả ượ ề ỉ ể ồ ủ
113
Ch đ nh gi i h n đi u ch nhỉ ị ớ ạ ề ỉ
- Ta có th ch ra kho ng c a các giá tr vào và giá tr ra s d ng hàm imadjust . Ta chể ỉ ả ủ ị ị ử ụ ỉ
ra nh ng kho ng này trong hai véct và truy n đ n hàm imadjust nh là tham s .ữ ả ơ ề ế ư ố
Véct đ u tiên ch ra các giá tr c ng đ th p và cao mà ta mu n ánh x . Véct thơ ầ ỉ ị ườ ộ ấ ố ạ ơ ứ
hai ch ra t l qua đó ta mu n ánh x chúng ỉ ỉ ệ ố ạ
Chú ý : Ta ph i ch ra các c ng đ nh là các giá tr gi a 0 và 1 b t k nh vào Iả ỉ ườ ộ ư ị ữ ấ ể ả
thu c l p nào .ộ ớ
- Ch ng h n , ta có th gi m đ t ng ph n c a m t nh b ng cách thu h p kho ngẳ ạ ể ả ộ ươ ả ủ ộ ả ằ ẹ ả
d li u . Trong ví d d i đây , áo choàng c a ng i đàn ông có màu đen đ l m t sữ ệ ụ ướ ủ ườ ể ộ ộ ố
chi ti t nào . Hàm imadjust ánh x kho ng [0,51] trong nh vào thu c l p uint8 thànhế ạ ả ả ộ ớ
nh ra [128,255] . Đi u này làm sáng đáng k nh ra và cũng m r ng kho ng đ ngả ề ể ả ở ộ ả ộ
( dynamic range ) c a ph n t i trong nh g c , làm cho nó d dàng nhìn th y các chiủ ầ ố ả ố ễ ấ
ti t trên chi c áo choàng . Chú ý r ng , tuy nhiên b i vì t t c các giá tr l n h n 51ế ế ằ ở ấ ả ị ớ ơ
114
trong nh g c đ c ánh x thành 255 ( tr ng ) trong nh ra , nh ra xu t hi n nh v aả ố ượ ạ ắ ả ả ấ ệ ư ừ
b r a .ị ử
I = imread('cameraman.tif');
J = imadjust(I,[0 0.2],[0.5 1]);
imshow(I)
figure, imshow(J)
Thi t l p ng ng đi u ch nh t đ ngế ậ ưỡ ề ỉ ự ộ
- Đ s d ng hàm imadjust , ta ph i th c hi n hai b c đi n hình :ể ử ụ ả ự ệ ướ ể
1. Quan sát bi u đ c a nh đ quy t đ nh giá tr c ng đ gi i h n ể ồ ủ ả ể ế ị ị ườ ộ ớ ạ
2. Ch ra nh ng ng ng này d i d ng m t phân s trong kho ng 0 đ n 1 đ ta có thỉ ữ ưỡ ướ ạ ộ ố ả ế ể ể
truy n chúng vào hàm imadjust trong véc t [low_in high_in]ề ơ
- M t cách thu n ti n h n đ ch ra các giá tr ng ng là s d ng hàm stretchlim . Hàmộ ậ ệ ơ ể ỉ ị ưỡ ử ụ
này tính toán bi u đ c a nh và tính các giá tr ng ng đi u ch nh m t cách t đ ng .ể ồ ủ ả ị ưỡ ề ỉ ộ ự ộ
Hàm tr v các giá tr d i d ng phân s trong m t véct mà ta có th truy n theoả ề ị ướ ạ ố ộ ơ ể ề
d ng [low_in high_in] nh là tham s t i hàm imadjust . Ch ng h n :ạ ư ố ớ ẳ ạ
I = imread('rice.png');
115
J = imadjust(I,stretchlim(I),[0 1]);
- Theo m c đ nh , hàm stretchlim s d ng các giá tr c ng đ đ i di n cho đáyặ ị ử ụ ị ườ ộ ạ ệ
1%(0.01) và đ nh 1%(0.99) c a kho ng nh là các ng ng gi i h n đi u ch nh . Ta cóỉ ủ ả ư ưỡ ớ ạ ề ỉ
th ch ra các kho ng gi i h n khác nh là tham s cho hàm stretchlim . ể ỉ ả ớ ạ ư ố
T ng quan Gammaươ
- Hàm imadjust ánh x low thành bottom , high thành top . Theo m c đ nh , nh ng giáạ ặ ị ữ
tr gi a low và high đ c ánh x m t cách tuy n tính t i các giá tr gi a bottom và top .ị ữ ượ ạ ộ ế ớ ị ữ
Ch ng h n , giá tr gi a low và high t ng ng v i giá tr gi a bottom và top ẳ ạ ị ữ ươ ứ ớ ị ữ
- Hàm imadjust có th ch p nh n m t tham s ph ch ra tác nhân t ng quanể ấ ậ ộ ố ụ ỉ ươ
Gamma . Ph thu c vào giá tr c a Gamma , s ánh x gi a các giá tr trong nh vào vàụ ộ ị ủ ự ạ ữ ị ả
ra có th là không tuy n tính . Ch ng h n , giá tr gi a low và high có th ánh x t iể ế ẳ ạ ị ữ ể ạ ớ
m t giá tr l n h n ho c nh h n giá tr gi a bottom và top . Hình sau minh ho m iộ ị ớ ơ ặ ỏ ơ ị ữ ạ ố
quan h này . Ba đ ng cong chuy n đ i ch ra các giá tr đ c ánh x ra sao khiệ ườ ể ổ ỉ ị ượ ạ
Gamma nh h n , b ng và l n h n 1 . ỏ ơ ằ ớ ơ
- Ví d d i đây minh ho t ng quan Gamma. Chú ý r ng trong l i g i hàmụ ướ ạ ươ ằ ờ ọ
imadjust , kho ng d li u c a nh vào và ra đ c ch đ nh là các ma tr n r ng . Khi taả ữ ệ ủ ả ượ ỉ ị ậ ỗ
ch đ nh m t ma tr n r ng , hàm imadjust s d ng kho ng giá tr m c đ nh [0 ,1] .ỉ ị ộ ậ ỗ ử ụ ả ị ặ ị
Trong ví d này , c hai kho ng đ u r ng v phía trái , đi u này có nghĩa r ng t ngụ ả ả ề ỗ ề ề ằ ươ
quan Gamma đ c áp đ t mà không có b t kì s đi u ch nh d li u nào khác .ượ ặ ấ ự ề ỉ ữ ệ
[X,map] = imread('forest.tif')
I = ind2gray(X,map);
J = imadjust(I,[],[],0.5);
imshow(I)
116
figure, imshow(J)
b- S làm cân b ng bi u đự ằ ể ồ
( Histogram Equalization )
- Quá trình đi u ch nh các giá tr c ngề ỉ ị ườ
đ có th đ c th c hi n t đ ng b ngộ ể ượ ự ệ ự ộ ằ
hàm histeq . Hàm histeq th c hi n m t sự ệ ộ ự
cân b ng bi u đ bao g m vi c bi n đ iằ ể ồ ồ ệ ế ổ
các giá tr c ng đ đ bi u đ c a nhị ườ ộ ể ể ồ ủ ả
ra có th x p x t ng h p v i m t bi uể ấ ỉ ươ ợ ớ ộ ể
đ xác đ nh . ( theo m c đ nh , hàm này c g ng làm h p t i m t bi u đ ph ng v i 64ồ ị ặ ị ố ắ ợ ớ ộ ể ồ ẳ ớ
thùng – bins , nh ng ta có th ch ra m t bi u đ khác )ư ể ỉ ộ ể ồ
- Ví d sau đây minh ho vi c s d ng hàm histeq đ đi u ch nh c ng đ c a m tụ ạ ệ ử ụ ể ề ỉ ườ ộ ủ ộ
nh . nh g c có đ t ng ph n th p v i h u h t các giá tr gi a c a kho ngả Ả ố ộ ươ ả ấ ớ ầ ế ị ở ữ ủ ả
c ng đ . Hàm histeq t o ra m t nh ra có các giá tr đ c phân b đ u trong nh ườ ộ ạ ộ ả ị ượ ố ề ả
I = imread('pout.tif');
J = histeq(I);
imshow(J)
figure, imhist(J,64)
117
- Hàm histeq có th tr v m t véc t 1x256 ch ra m i giá tr vào có th đ c cho taể ả ề ộ ơ ỉ ỗ ị ể ượ
k t qu c a giá tr ra . ( giá tr trong véct này n m trong kho ng [0,1] b t k nh vàoế ả ủ ị ị ơ ằ ả ấ ể ả
thu c l p nào ) . Ta có th v d li u này đ nh n đ ng cong bi n đ i . Ch ng h n :ộ ớ ể ẽ ữ ệ ể ậ ườ ế ổ ẳ ạ
I = imread('pout.tif');
[J,T] = histeq(I);
figure,plot((0:255)/255,T);
- Đ ý đ ng cong này ph n ánh bi u đ trong hình tr c v i các giá tr vào n m gi aể ườ ả ể ồ ướ ớ ị ằ ữ
0.3 và 0.6 trong khi giá tr ra đ c phân b gi a 0 và 1 .ị ượ ố ữ
118
c- Cân b ng bi u đ thích ng , đ t ng ph n gi i h n ( Contrast – Limitedằ ể ồ ứ ộ ươ ả ớ ạ
Adaptive Histogram Equalization )
- T ng t nh s d ng hàm histeq , ta có th th c hi n s cân b ng bi u đ thíchươ ự ư ử ụ ể ự ệ ự ằ ể ồ
ng đ t ng ph n gi i h n s d ng hàm adapthisteq . Trong khi hàm histeq là vi cứ ộ ươ ả ớ ạ ử ụ ệ
trên toàn b c nh , hàm adapthisteq ho t đ ng trên m t vùng nh c a nh đ c g i làứ ả ạ ộ ộ ỏ ủ ả ượ ọ
ngóii ( tiles ) . Đ t ng ph n c a m i tile đ c làm giàu đ cho bi u đ c a vùng raộ ươ ả ủ ỗ ượ ể ể ồ ủ
x p x t ng h p v i m t bi u đ xác đ nh . Sau khi thi hành phép cân b ng ,ấ ỉ ươ ợ ớ ộ ể ồ ị ằ
adapthisteq k t h p các tile g n nhau s d ng n i suy song tuy n thính đ lo i b cácế ợ ầ ử ụ ộ ế ể ạ ỏ
artifact bao g m các đ ng biên .ồ ườ
- Đ tránh m r ng nhi u có trong nh , ta có th s d ng hàm adapthisteq v i m t sể ở ộ ễ ả ể ử ụ ớ ộ ố
tham s tuỳ ch n đ gi i h n đ t ng ph n đ c bi t trên các vùng thu n nh t .ố ọ ể ớ ạ ộ ươ ả ặ ệ ầ ấ
- Đ minh ho , ví d này s d ng hàm adapthisted đ đi u ch nh đ t ng ph n c aể ạ ụ ử ụ ể ề ỉ ộ ươ ả ủ
m t nh c ng đ ( nh đen tr ng ) . nh g c có đ t ng ph n th p v i h u h t cácộ ả ườ ộ ả ắ Ả ố ộ ươ ả ấ ớ ầ ế
giá tr n m gi a c a kho ng c ng đ . Hàm adapthisteq t o ra m t nh có các giáị ằ ở ữ ủ ả ườ ộ ạ ộ ả
tr đ c phân b đ u trong nh :ị ượ ố ề ả
I = imread('pout.tif');
J = adapthisteq(I);
imshow(I)
figure, imshow(J)
119
d- Giãn không t ng quan ( Decorrelation Stretching )ươ
- Ta áp d ng giãn không t ng quan b ng cách s d ng hàm decorrstretch . S l ngụ ươ ằ ử ụ ố ượ
gi i màu , NBANDS trong m t nh th ng là 3 . Tuy nhiên , ta có th áp đ t giãnả ộ ả ườ ể ặ
không t ng quan b t kì s gi i màu nào ta mu n .ươ ấ ố ả ố
- Các giá tr màu g c c a nh đ c ánh x t i m t t p các giá tr m i v i m t kho ngị ố ủ ả ượ ạ ớ ộ ậ ị ớ ớ ộ ả
r ng h n . C ng đ màu c a m i pixel đ c bi n đ i thành màu ộ ơ ườ ộ ủ ỗ ượ ế ổ eigenspace c a maủ
tr n t ng quan , đ c giãn đ ngang b ng v i s bi n đ i gi i màu ( band variances )ậ ươ ượ ể ằ ớ ự ế ổ ả
sau đó đ c bi n đ i l i thành gi i màu g c .ượ ế ổ ạ ả ố
- Đ đ nh nghĩa m tể ị ộ bandwise statistics , ta s d ng toàn b nh g c ho c v i tuỳử ụ ộ ả ố ặ ớ
ch n subset , b t kì m t vùng nào đó c a nh . ọ ấ ộ ủ ả
Giãn không t ng quan đ n gi n ươ ơ ả
- Trong ví d này , ta th c hi n m t phép giãn không t ng quan trên m t nh ụ ự ệ ộ ươ ộ ả
1. nh có 7 gi i , nh ng ta ch đ c vào 3 màu nhìn th y Ả ả ư ỉ ọ ấ
A = multibandread('littlecoriver.lan', [512, 512, 7], ...
'uint8=>uint8', 128, 'bil', 'ieee-le', ...
{'Band','Direct',[3 2 1]});
2. Th c hi n giãn không t ng quan ự ệ ươ
B = decorrstretch(A);
3. Hi n th k t quể ị ế ả
imshow(A); figure; imshow(B)
120
- So sánh hai nh , nh g c có màu tím nh trong khi nh b bi n đ i có m t chút gì đóả ả ố ẹ ả ị ế ổ ộ
nh đ c m r ng kho ng màu ư ượ ở ộ ả
- M t đ th bi u di n s phân b gi i c a nh s ch ra các gi i đ c làm m t t ngộ ồ ị ể ễ ự ố ả ủ ả ẽ ỉ ả ượ ấ ươ
quan và cân b ng nh th nào :ằ ư ế
rA = A(:,:,1); gA = A(:,:,2); bA = A(:,:,3);
figure, plot3(rA(:),gA(:),bA(:),'.'); grid('on')
xlabel('Red (Band 3)'); ylabel('Green (Band 2)'); ...
zlabel('Blue (Band 1)')
rB = B(:,:,1); gB = B(:,:,2); bB = B(:,:,3);
figure, plot3(rB(:),gB(:),bB(:),'.'); grid('on')
xlabel('Red (Band 3)'); ylabel('Green (Band 2)'); ...
zlabel('Blue (Band 1)')
121
Giãn t ng ph n tuy n tínhươ ả ế
- Bây gi ta s th c hi n m t bi n đ i t ng t nh ng v i m t phép giãn t ng ph nờ ẽ ự ệ ộ ế ổ ươ ự ư ớ ộ ươ ả
tuy n tính áp đ t lên nh sau khi giãn không t ng quan .ế ặ ả ươ
imshow(A); C = decorrstretch(A,'Tol',0.01); figure; imshow(C)
- Hãy so sánh đã đ c bi n đ i v i nh g cượ ế ổ ớ ả ố
122
- Vi c thêm giãn t ng ph n tuy n tính làm giàu nh k t qu b ng cách m i r ng h nệ ươ ả ế ả ế ả ằ ở ộ ơ
kho ng màu . Trong tr ng h p này , kho ng màu đ c m r ng đ c ánh x trongả ườ ợ ả ượ ở ộ ượ ạ
m i gi i t i m t kho ng chu n gi a 0.01 và 0.99 đ bão hoà 2% ỗ ả ớ ộ ả ẩ ữ ộ
5- Lo i b nhi u ạ ỏ ễ
- Các nh s có th có nhi u lo i nhi u khác nhau . Có m t s cách mà nhi u có thả ố ể ề ạ ễ ộ ố ễ ể
thâm nh p vào trong nh ph thu c vào vi c nh đ c t o ra nh th nào . Ch ngậ ả ụ ộ ệ ả ượ ạ ư ế ẳ
h n :ạ
+ N u nh đ c scan t m t nh đ c ch p trên phim , các h t trên phim là m tế ả ượ ừ ộ ả ượ ụ ạ ộ
ngu n nhi u . Nhi u có th là k t qu c a vi c phim b h h ng ho c do ch t l ngồ ễ ễ ể ế ả ủ ệ ị ư ỏ ặ ấ ượ
c a scannerủ
+ N u nh đ c thu th p tr c ti p t đ nh d ng s , c ch c a vi c thu th p d li uế ả ượ ậ ự ế ừ ị ạ ố ơ ế ủ ệ ậ ữ ệ
nh ( ch ng h n nh b phát hi n CCD ) có th t o ra nhi u ả ẳ ạ ư ộ ệ ể ạ ễ
+ S truy n d li u nh cũng có th b nhi u tác đ ng ự ề ữ ệ ả ể ị ễ ộ
- Toolbox cung c p m t s cách đ lo i b ho c gi m nhi u trong m t nh . Các cáchấ ộ ố ể ạ ỏ ặ ả ễ ộ ả
khác nhau đ c s d ng cho các lo i nhi u khác nhau . Các cách đó bao g m :ượ ử ụ ạ ễ ồ
+S d ng các b l c tuy n tính ( Linear Filter )ử ụ ộ ọ ế
+ S d ng các b median ( Median Filter )ử ụ ộ
+ S d ng các b l c thích nghi ( Adaptive Filter )ử ụ ộ ọ
- Đ mô ph ng tác đ ng c a các v n đ v nhi u đã nói trên , toolbox cung c p hàmể ỏ ộ ủ ấ ề ề ễ ở ấ
imnoise mà ta có th dùng đ thêm nhi u vào m t nh . ể ể ễ ộ ả
a- S d ng các b l c tuy n tínhử ụ ộ ọ ế
- Ta có th s d ng các b l c tuy n tính đ lo i b nhi u trong m t nh . Các b l cể ử ụ ộ ọ ế ể ạ ỏ ễ ộ ả ộ ọ
này ch ng h n nh b l c trung bình ho c b l c Gauss là thích h p . Ch ng h n ,ẳ ạ ư ộ ọ ặ ộ ọ ợ ẳ ạ
m t b l c trung bình đ c s d ng đ lo i b các h t nhi u t m t nh ch p trênộ ộ ọ ượ ử ụ ể ạ ỏ ạ ễ ừ ộ ả ụ
123
phim . Do m i pixel đ c thi t l p t i giá tr trung bình c a các pixel xung quanh nó ,ỗ ượ ế ậ ớ ị ủ
do v y s bi n đ ng đ a ph ng gây ra b i các h t nhi u b gi m b t .ậ ự ế ộ ị ươ ở ạ ễ ị ả ớ
b- S d ng các b l c median ử ụ ộ ọ
-S dung các b l c trung bình t ng t nh vi c s d ng các b l c trung bìnhử ộ ọ ươ ự ư ệ ử ụ ộ ọ
( averaging filters ) , m i pixel ra đ c thi t l p giá tr trung bình c a các giá tr pixelỗ ượ ế ậ ị ủ ị
lân c n c a pixel vào t ng ng . Tuy nhiên , v i b l c này , giá tr c a m t pixel raậ ủ ươ ứ ớ ộ ọ ị ủ ộ
đ c quy t đ nh b i median c a các pixel lân c n h n là giá tr trung bình . Medianượ ế ị ở ủ ậ ơ ị
th ng nh h n nhi u so v i trung bình các giá tr xa nh t (đ c g i là outliers ) . Bườ ỏ ơ ề ớ ị ấ ượ ọ ộ
l c median do đó t t h n đ lo i b nh ng outlier này mà không gi m đ s c nét c aọ ố ơ ể ạ ỏ ữ ả ộ ắ ủ
nh . Hàm medfilt2 s d ng phép l c median ả ử ụ ọ
- Ví d sau đây so sánh vi c s d ng m t b l c trung bình và m t b l c median đụ ệ ử ụ ộ ộ ọ ộ ộ ọ ể
lo i b nhi u là các h t “mu i” và “h t tiêu “ . Lo i nhi u này bao g m m t t p h pạ ỏ ễ ạ ố ạ ạ ễ ồ ộ ậ ợ
các pixel ng u nhiên đ c thi t l p thành màu đen ho c tr ng . Trong c hai tr ngẫ ượ ế ậ ặ ắ ả ườ
h p , kích c c a vùng xung quanh đ c s d ng đ l c là 3x3 .ợ ỡ ủ ượ ử ụ ể ọ
1. Đ c nh và hi n th nó ọ ả ể ị
I = imread('eight.tif');
imshow(I)
2. Thêm nhi u vào nhễ ả
J = imnoise(I,'salt & pepper',0.02);
figure, imshow(J)
124
3. L c nhi u v i b l c trung bình sau đó hi n th k t qu ọ ễ ớ ộ ọ ể ị ế ả
K = filter2(fspecial('average',3),J)/255;
figure, imshow(K)
4. S d ng m t b l c median đ l c nh và hi n th k t qu . Chú ý r ng hàmử ụ ộ ộ ọ ể ọ ả ể ị ế ả ằ
medfilt2 th c hi n vi c lo i b nhi u t t h n và ít làm m các c nh ự ệ ệ ạ ỏ ễ ố ơ ờ ạ
L = medfilt2(J,[3 3]);
figure, imshow(K)
figure, imshow(L)
125
c- S d ng các b l c thích nghiử ụ ộ ọ
- Hàm wiener2 áp đ t m t b l c Wiener ( m t ki u c a b l c tuy n tính ) lên m tặ ộ ộ ọ ộ ể ủ ộ ọ ế ộ
nh m t cách thích nhi ( adaptively ) v i s bi n đ ng đ a ph ng c a nh . Nh ngả ộ ớ ự ế ộ ị ươ ủ ả ữ
n i có bi n đ ng l n , hàm này th c hi n m t s ít thao tác làm m t nh . Nh ng n iơ ế ộ ớ ự ệ ộ ố ượ ả ữ ơ
có bi n đ ng nh , hàm th c hi n nhi u các thao tác làm m t nh .ế ộ ỏ ự ệ ề ượ ả
- C ch này th ng t o ra k t qu t t h n so v i l c tuy n tính . Các b l c thíchơ ế ườ ạ ế ả ố ơ ớ ọ ế ộ ọ
nghi th ng đ c s d ng nhi u h n so v i các b l c tuy n tính trong vi c b o vườ ượ ử ụ ề ơ ớ ộ ọ ế ệ ả ệ
các c nh và vùng có t n s cao c a m t nh . Thêm vào , không có tác v thi t kạ ầ ố ủ ộ ả ụ ế ế
nào , hàm wiener2 đi u khi n t t c các tính toán ban đ u và thi hành phép l c cho nhề ể ấ ả ầ ọ ả
vào . Tuy nhiên , hàm này c n nhi u tính toán h n các b l c tuy n tính ầ ề ơ ộ ọ ế
- Hàm wiener2 làm vi c t t h n khi nhi u là nhi u “tr ng” ch ng h nh nh nhi uệ ố ơ ễ ễ ắ ẳ ạ ư ễ
Gauss . Ví d d i đây áp đ t hàm wiener1 lên m t nh có nhi u Gauss tác đ ng . ụ ướ ặ ộ ả ễ ộ
RGB = imread('saturn.png');
I = rgb2gray(RGB);
J = imnoise(I,'gaussian',0,0.005);
K = wiener2(J,[5 5]);
imshow(J)
figure, imshow(K)
126
nh g c Ả ố
nh k t quẢ ế ả
VII – Các thao tác hình thái
(Morphological Operations )
- Morphology là m t kĩ thu t x lý nhộ ậ ử ả
d a trên các hình d ng . Giá tr c a m i pixel trong nh ra d a trên c s m t s soự ạ ị ủ ỗ ả ự ơ ở ộ ự
sánh c a các pixel t ng ng trong nh vào v i các pixel xung quanh nó . B ng cáchủ ươ ứ ả ớ ằ
l a ch n kích c và hình d ng c a vùng xung quanh , ta có th xây d ng m t thao tácự ọ ỡ ạ ủ ể ự ộ
hình thái r t nh y c m v i m t s hình d ng đ c thù trong nh vào .ấ ạ ả ớ ộ ố ạ ặ ả
- Ta s xem xét các hàm x lý hình thái c a toolbox. Ta có th s d ng nh ng hàm nàyẽ ử ủ ể ử ụ ữ
đ th c hi n các thao tác x lý thông d ng nh làm giàu đ t ng ph n ( contrastể ự ệ ử ụ ư ộ ươ ả
enhancement ) , lo i b nhi u ( nose removal ) , làm m ng ( thinning ) , tô ( filling ) vàạ ỏ ễ ỏ
phân vùng ( segmentation ) .
1. B ng thu t ng ả ậ ữ
Tên thu t ngậ ữ Di n gi Iễ ả
Background N n . Trong nh nh phân , các pixel đ cề ả ị ượ
thi t l p giá tr 0 đ c xem xét nh là n nế ậ ị ượ ư ề
c a nh . Khi ta nhìn m t nh nh phân ,ủ ả ộ ả ị
màu c a n n là màu đen ủ ề
Connectivity Các tiêu chu n mô t vi c các pixel trongẩ ả ệ
m t nh hình thành nên m t nhóm g nộ ả ộ ắ
k t nh th nào . Toolbox cung tr giúpế ư ế ợ
connectivity 2 chi u cũng nh nhi u chi uề ư ề ề
Foreground Trong m t nh nh phân , các pixel đ cộ ả ị ượ
thi t l p giá tr 1 đ c xem nhế ậ ị ượ ư
foreground . Khi quan sát m t nh nhộ ả ị
phân , màu c a foreground là màu tr ng ủ ắ
Global maxima Vùng cao nh t trong nh .ấ ả
Global minima Vùng th p nh t trong nh`ấ ấ ả
127
Morphology M t t p h p r ng c a các thao tác x lýộ ậ ợ ộ ủ ử
nh mà x lý trên các hình d ng . Các thaoả ử ạ
tác này áp đ t m t ph n t có c u trúc lênặ ộ ầ ử ấ
m t nh , t o m t nh ra có cùng kíchộ ả ạ ộ ả
th c v i nh vào . Các thao tác hình tháiướ ớ ả
c b n nh t là giãn n ( dilation ) và ănơ ả ấ ở
mòn (erosion )
Neighborhood Vùng xung quanh – đó là t p các pixelậ
đ c đ nh nghĩa b i v trí t ng đ i c aượ ị ở ị ươ ố ủ
chúng v i pixel quan tâm . M t vùng xungớ ộ
quanh có th đ c đ nh nghĩa b i m tể ượ ị ở ộ
ph n t có c u trúc ho c b ng cách ch raầ ử ấ ặ ằ ỉ
m t connectivity ( tính k t n i )ộ ế ố
Object T p các pixel trong m t nh nh phân hìnhậ ộ ả ị
thành nên m t nhóm k t n i . Trong ngộ ế ố ữ
c nh c a xem xét này , “object” vàả ủ
“connected component” là đ ng nh t .ồ ấ
Packed binary Ph ng pháp nén nh nh phân mà có thươ ả ị ể
làm tăng t c quá trình x lý nhố ử ả
Regional maxima T p các pixel k t n i có cùng c ng đậ ế ố ườ ộ
l n nh t trong m t vùng . T t c các pixelớ ấ ộ ấ ả
xung quanh đ u có giá tr nh h n giá trề ị ỏ ơ ị
này
Regional minima T p các pixel k t n i có cùng c ng đậ ế ố ườ ộ
nh nh tỏ ấ
Structuring element Ma tr n đ c s d ng đ đ nh nghĩa m tậ ượ ử ụ ể ị ộ
hình d ng xung quanh và kích c cho tácạ ỡ
thao tác hình thái bao g m giãn n và xóiồ ở
mòn . Nó ch ch a các giá tr 0 và 1 và cóỉ ứ ị
th có m t hình d ng và kích c b t kì .ể ộ ạ ỡ ấ
Các pixel v i giá tr 1 đ nh nghĩa vùngớ ị ị
xung quanh
128
2. Giãn n và xói mònở
- Giãn n và xói mòn là hai thao tác x lý hình thái c b n . Giãn n c ng thêm cácở ử ơ ả ở ộ
pixel t i vùng biên c a các đ i t ng trong m t nh trong khi xói mòn lo i b cácớ ủ ố ượ ộ ả ạ ỏ
pixel trên vùng biên c a các đ i t ng . S l ng pixel đ c thêm vào ho c lo i b tủ ố ượ ố ượ ượ ặ ạ ỏ ừ
các đ i t ng trong m t nh ph thu c vào kích c và hình d ng c a ph n t c u trúcố ượ ộ ả ụ ộ ỡ ạ ủ ầ ử ấ
đ c s d ng đ x lý nh . Ph n này s :ượ ử ụ ể ử ả ầ ẽ
+ Cung c p nh ng thông tin c b n v vi c các hàm giãn n và xói mòn ho t đ ngấ ữ ơ ả ề ệ ở ạ ộ
nh th nào ư ế
+ Mô t ph n t có c u trúc và cách t o ra chúngả ầ ử ấ ạ
+ Mô t cách th c hi n xói mònả ự ệ
+ Mô t m t s thao tác c b n d a trên giãn n và xói mònả ộ ố ơ ả ự ở
+ Mô t các hàm c a toolbox d a trên c s c a giãn n và xói mònả ủ ự ơ ở ủ ở
a-T ng quan v Dilation và Erosionổ ề
- Trong các thao tác giãn n và xói mòn , tr ng thái c a m t pixel nào đó trong nh raở ạ ủ ộ ả
đ c quy t đ nh b ng vi c áp đ t m t quy t c lên các pixel t ng ng và các pixel lânượ ế ị ằ ệ ặ ộ ắ ươ ứ
c n trong nh vào . Quy t c này đ c s d ng đ x lý các pixel đ nh nghĩa thao tácậ ả ắ ượ ử ụ ể ử ị
giãn n hay xói mòn . B ng sau đây li t kê các quy t c cho c hai phép x lý này ;ở ả ệ ắ ả ử
Tao tác Quy t cắ
Dilation Giá tr c a các pixel ra là giá tr l n nh tị ủ ị ớ ấ
c a t t c các pixel trong vùng lân c nủ ấ ả ậ
c a pixel vào t ng ng . Trong m t nhủ ươ ứ ộ ả
nh phân , n u b t kì pixel nào có giá tr 1 ,ị ế ấ ị
pixel ra s là 1ẽ
Erosion Giá tr c a pixel ra là giá tr nh nh t c aị ủ ị ỏ ấ ủ
t t c các pixel trong vùng lân c n c aấ ả ậ ủ
pixel vào t ng ng . N u trong m t nhươ ứ ế ộ ả
nh phân có m t pixel có giá tr 0 thì pixelị ộ ị
ra có giá tr 0ị
129
- Hình sau đây minh ho s giãn n c a m t nh nh phân . Chú ý cách ph n t c uạ ự ở ủ ộ ả ị ầ ử ấ
trúc đ nh nghĩa vùng xung quanh c a pixel quan tâm , đó là vùng hình tròn . Hàm giãnị ủ
n áp đ t quy lu t t ng ng lên các pixel trong vùng lân c n và gán m t giá tr t iở ặ ậ ươ ứ ậ ộ ị ớ
pixel t ng ng trong nh ra . Trong hình , hàm giãn n hình thái thi t l p các giá trươ ứ ả ở ế ậ ị
c a pixel ra b ng 1 b i vì m t trong nh ng ph n t trong vùng lân c n đ c đ nhủ ằ ở ộ ữ ầ ử ậ ượ ị
nghĩa b i ph n t c u trúc có giá tr 1ở ầ ử ấ ị
- Hình sau đây minh ho quá trình x lý nh cho m t nh đen tr ng . Hình này ch raạ ử ả ộ ả ắ ỉ
quá trình x lý c a m t pixel c th trong nh vào . Chú ý vi c hàm đã áp đ t quy t cử ủ ộ ụ ể ả ệ ặ ắ
t i vùng lân c n c a pixel vào và s d ng giá tr cao nh t c a t t c các pixel trongớ ậ ủ ử ụ ị ấ ủ ấ ả
vùng này nh là giá tr t ng ng cho pixel ra nh th nào .ư ị ươ ứ ư ế
130
X lý các pixel biên nhử ở ả
- Các hàm x lý hình thái đ nh v g c c a ph n t c u trúc , tâm c a nó qua các pixelử ị ị ố ủ ầ ử ấ ủ
quan tâm trong nh vào . V i các pixel c nh c a m t nh , các ph n lân c n đ cả ớ ở ạ ủ ộ ả ầ ậ ượ
đ nh nghĩa b i ph n t c u trúc có th m r ng qua biên c a nhị ở ầ ử ấ ể ở ộ ủ ả
-Đ x lý các pixel trên biên nh ,các hàm x lý hình thái gán m t giá tr t i nh ngể ử ả ử ộ ị ớ ữ
pixel không xác đ nh này gi ng nh các hàm đã thêm vào nh v i m t s hàng và c tị ố ư ả ớ ộ ố ộ
nào đó . Giá tr c a nh ng pixel thêm vào này thay đ i v i c thao tác giãn n l n xóiị ủ ữ ổ ớ ả ở ẫ
mòn . B ng sau đây mô t quy t c thêm ( padding ) cho giãn n và xói mòn trên c nhả ả ắ ở ả ả
nh phân và nh đen tr ng .ị ả ắ
Thao tác Quy t cắ
Dilation Các pixel ngoài biên nh đ c gán giá trả ượ ị
nh nh t tuỳ theo ki u d li u . V i nhỏ ấ ể ữ ệ ớ ả
nh phân , nh ng pixel này đ c gán giá trị ữ ượ ị
0 . V i nh đen tr ng , giá tr nh nh tớ ả ắ ị ỏ ấ
cho nh uint8 là 0ả
Erosion Các pixel ngoài biên nh đ c gán giá trả ượ ị
l n nh t tuỳ theo ki u d li u . V i nhớ ấ ể ữ ệ ớ ả
nh phân , nh ng pixel này đ c gán giá trị ữ ượ ị
1 . V i nh đen tr ng , gía tr l n nh t c aớ ả ắ ị ớ ấ ủ
nh uint8 là 255ả
Chú ý : B ng cách s d ng giá tr nh nh t cho thao tác giãn n và giá tr l n nh t choằ ử ụ ị ỏ ấ ở ị ớ ấ
thao tác xói mòn , các hàm toolbox tránh vi c tác đ ng lên biên . Các vùng g n biênệ ộ ầ
c a nh ra không đ ng nh t v i ph n còn l i c a nh . Ch ng h n , n u xói mònủ ả ồ ấ ớ ầ ạ ủ ả ẳ ạ ế
131
đ c thêm v i giá tr nh nh t , vi c xói mòn m t nh s d n đ n đ ng biên đenượ ớ ị ỏ ấ ệ ộ ả ẽ ẫ ế ườ
xung quanh c nh c a nh ra .ạ ủ ả
b-Ph n t c u trúcầ ử ấ
- M t ph n không th thi u đ c c a các thao tác giãn n và xói mòn là ph n t c uộ ầ ể ế ượ ủ ở ầ ử ấ
trúc đ c s d ng đ thăm dò nh vào . Ph n t c u trúc 2 chi u ho c ph ng baoượ ử ụ ể ả ầ ử ấ ề ặ ẳ
g m m t ma tr n c a 0 và 1 th ng nh h n ma tr n nh đang đ c x lý . Pixelồ ộ ậ ủ ườ ỏ ơ ậ ả ượ ử
trung tâm c a ph n t c u trúc đ c g i là g c phân bi t v i các pixel quan tâm –ủ ầ ử ấ ượ ọ ố ệ ớ
pixel đang đ c x lý . Nh ng pixel trong ph n t c u trúc ch a giá tr 1 đ nh nghĩaượ ử ữ ầ ử ấ ứ ị ị
vùng lân c n c a ph n t c u trúc . Nh ng pixel này cũng đ c xem xét trong quáậ ủ ầ ử ấ ữ ượ
trình giãn n ho c xói mòn . Ph n t 3 chi u hay không ph ng s d ng 0 và 1 đ đ nhở ặ ầ ử ề ẳ ử ụ ể ị
nghĩa quy mô c a ph n t c u trúc trong m t ph ng x-y và thêm vào giá tr chi u caoủ ầ ử ấ ặ ẳ ị ề
đ đ nh nghĩa chi u th 3 .ể ị ề ứ
G c c a ph n t c u trúcố ủ ầ ử ấ
- Các hàm x lý hình thái s d ng mã sau đây đ l y to đ c a g c ph n t c u trúcử ử ụ ể ấ ạ ộ ủ ố ầ ử ấ
có kích th c và chi u b t kì ướ ề ấ
origin = floor((size(nhood)+1)/2)
( Trong mã trên , nhood là vùng lân c n đ nh nghĩa ph n t c u trúc . Do ph n t c uậ ị ầ ử ấ ầ ử ấ
trúc là đ i t ng trong Matlab , ta không th s d ng kích th c c a đ i t ngố ượ ể ử ụ ướ ủ ố ượ
STREL trong tính toán này . Ta ph i s d ng ph ng th c getnhood c a STREL đả ử ụ ươ ứ ủ ể
nh n vùng lân c n c a ph n t c u trúc t đ i t ng STREL )ậ ậ ủ ầ ử ấ ừ ố ượ
- Ch ng h n , ví d sau minh ho m t ph n t c u trúc có hình thoi ẳ ạ ụ ạ ộ ầ ử ấ
T o ph n t c u trúcạ ầ ử ấ
132
- Các hàm giãn n và xói mòn c a toolbox ch p nh n các đ i t ng ph n t c u trúcở ủ ấ ậ ố ượ ầ ử ấ
đ c g i là STRELs . Ta s d ng hàm strel đ t o ra các STRELs có kích th c vàượ ọ ử ụ ể ạ ướ
hình d ng b t kì . Hàm strel cũng bao g m tr giúp s n cho các hình d ng thông d ngạ ấ ồ ợ ẵ ạ ụ
khác nh : đ ng th ng , hình thoi , hình đĩa , đ ng th ng đi u hoà và hình qu bóng ư ườ ẳ ườ ẳ ề ả
- Ch ng h n , đo n mã sau t o m t ph n t c u trúc ph ng có d ng hình thoi ẳ ạ ạ ạ ộ ầ ử ấ ẳ ạ
se = strel('diamond',3)
se =
Flat STREL object containing 25 neighbors.
Decomposition: 3 STREL objects containing a total of 13 neighbors
Neighborhood:
0 0 0 1 0 0 0
0 0 1 1 1 0 0
0 1 1 1 1 1 0
1 1 1 1 1 1 1
0 1 1 1 1 1 0
0 0 1 1 1 0 0
0 0 0 1 0 0 0
Phân tích ph n t c u trúc ( Structuring Element Decomposition )ầ ử ấ
- Đ nâ
Các file đính kèm theo tài liệu này:
- bai_giang_ve_photoshop.pdf