Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 275 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
275
Dung lượng
3,22 MB
Nội dung
M c l cụ ụ 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 đ i 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ế ổ ả I – Các kiểu ảnh , các thao tác ảnh cơ bản trong Toolbox 1 . nh đ c đ nh ch s ( Indexed Images )Ả ượ ị ỉ ố - M t nh ch s bao g m m t ma tr n d li u X và ma tr n b n đ màu map . Maộ ả ỉ ố ồ ộ ậ ữ ệ ậ ả ồ tr n d li u có th có ki u thu c l p uint8,uint16 ho c ki u double . Ma tr n b n đậ ữ ệ ể ể ộ ớ ặ ể ậ ả ồ màu là m t m ng mx3 ki u double bao g m các giá tr d u ph y đ ng n m gi a 0 và 1ộ ả ể ồ ị ấ ẩ ộ ằ ữ . M i hàng c a b n đ ch ra các giá tr mà : red , green và blue c a m t màu đ n . M tỗ ủ ả ồ ỉ ị ủ ộ ơ ộ nh ch s s d ng ánh x tr c ti p gi a giá tr c a pixel nh t i giá tr trong b n đả ỉ ố ử ụ ạ ự ế ữ ị ủ ả ớ ị ả ồ màu . Màu s c c a m i pixel nh đ c tính toán b ng cách s d ng giá tr t ng ngắ ủ ỗ ả ượ ằ ử ụ ị ươ ứ c a X ánh x t i m t giá tr ch s c a map . Giá tr 1 ch ra hàng đ u tiên , giá tr 2 chủ ạ ớ ộ ị ỉ ố ủ ị ỉ ầ ị ỉ ra hàng th hai trong b n đ màu …ứ ả ồ - M t b n đ màu th ng đ c ch a cùng v i nh ch s và đ c t đ ng n p cùngộ ả ồ ườ ượ ứ ớ ả ỉ ố ượ ự ộ ạ v i nh khi s d ng hàm ớ ả ử ụ imread đ đ c nh .Tuy nhiên , ta không b gi i h n khiể ọ ả ị ớ ạ s d ng b n đ màu m c đ nh , ta có th s d ng m t kì b n đ màu nào . Hình sauử ụ ả ồ ặ ị ể ử ụ ấ ả ồ đây minh ho c u trúc c a m t nh ch s . Các pixel trong nh đ c đ i di n b iạ ấ ủ ộ ả ỉ ố ả ượ ạ ệ ở m t s nguyên ánh x t i m t giá tr t ng ng trong b n đ màu . ộ ố ạ ớ ộ ị ươ ứ ả ồ ( NH )Ả L p và đ l ch c a b n đ màu ( Colormap Offsets )ớ ộ ệ ủ ả ồ - Quan h gi a giá tr trong ma tr n nh và giá tr trong b n đ màu ph thu c vàoệ ữ ị ậ ả ị ả ồ ụ ộ ki u giá tr c a các ph n t ma tr n nh . N u các ph n t ma tr n nh thu c ki uể ị ủ ầ ử ậ ả ế ầ ử ậ ả ộ ể double , giá tr 1 s t ng ng v i giá tr trong hàng th nh t c a b n đ màu , giá tr 2ị ẽ ươ ứ ớ ị ứ ấ ủ ả ồ ị 1 s t ng ng v i giá tr trong hàng th 2 c a b n đ màu … N u các ph n t c a maẽ ươ ứ ớ ị ứ ủ ả ồ ế ầ ử ủ tr n nh thu c ki u uint8 hay uint16 s có m t đ l ch (offset ) – giá tr 0 trong maậ ả ộ ể ẽ ộ ộ ệ ị tr n nh s t ng ng v i giá tr trong hàng đ u tiên c a b n đ màu , giá tr 1 sậ ả ẽ ươ ứ ớ ị ầ ủ ả ồ ị ẽ t ng ng v i giá tr trong hàng th 2 c a b n đ màu ….ươ ứ ớ ị ứ ủ ả ồ - Đ l ch cũng đ c s d ng trong vi c đ nh d ng file nh đ ho đ tăng t i đa sộ ệ ượ ử ụ ệ ị ạ ả ồ ạ ể ố ố l ng màu s c có th đ c tr giúp . ượ ắ ể ượ ợ Gi i h n trong vi c tr giúp nh thu c l p unit16ớ ạ ệ ợ ả ộ ớ - Toolbox x lý nh c a Matlab tr giúp có gi i h n nh ch s thu c l p uint16 . Taử ả ủ ợ ớ ạ ả ỉ ố ộ ớ có th đ c nh ng nh đó và hi n th chúng trong Matlab nh ng tr c khi x lý chúng ,ể ọ ữ ả ể ị ư ướ ử ta ph i chuy n đ i chúng sang ki u uint8 ho c double . ả ể ổ ể ặ Đ chuy n đ i ( convert ) t iể ể ổ ớ ki u double ta dùng hàm ể im2double . Đ gi m s l ng màu c a nh xu ng 256 màuể ả ố ượ ủ ả ố (uint8 ) s d ng hàm ử ụ imapprox . 2. nh c ng đ ( Intensity Images )Ả ườ ộ - M t nh c ng đ là m t ma tr n d li u nh I mà giá tr c a nó đ i di n choộ ả ườ ộ ộ ậ ữ ệ ả ị ủ ạ ệ c ng đ trong m t s vùng nào đó c a nh . Matlab ch a m t nh c ng đ nhườ ộ ộ ố ủ ả ứ ộ ả ườ ộ ư m t ma tr n d n , v i m i ph n t c a ma tr n t ng ng v i m t pixel c a nh . Maộ ậ ơ ớ ỗ ầ ử ủ ậ ươ ứ ớ ộ ủ ả tr n có th thu c l p double , uint8 hay uint16 . Trong khi nh c ng đ hi m khiậ ể ộ ớ ả ườ ộ ế đ c l u v i b n đ màu , Matlab s d ng b n đ màu đ hi n th chúng .ượ ư ớ ả ồ ử ụ ả ồ ể ể ị - Nh ng ph n t trong ma tr n c ng đ đ i di n cho các c ng đ khác nhau ho cữ ầ ử ậ ườ ộ ạ ệ ườ ộ ặ đ xám . Nh ng đi m có c ng đ b ng 0 th ng đ c đ i di n b ng màu đen vàộ ữ ể ườ ộ ằ ườ ượ ạ ệ ằ c ng đ 1,255 ho c 65535 th ng đ i di n cho c ng đ cao nh t hay màu tr ng . ườ ộ ặ ườ ạ ệ ườ ộ ấ ắ 3. nh nh phân (Binary Images )Ả ị -Trong m t nh nh phân , m i pixel ch có th ch a m t trong hai giá tr nh phân 0ộ ả ị ỗ ỉ ể ứ ộ ị ị ho c 1 . Hai giá tr này t ng ng v i b t ho t t ( on ho c off ) . M t nh nh phânặ ị ươ ứ ớ ậ ặ ắ ặ ộ ả ị đ c l u tr nh m t m ng lôgíc c a 0 và 1 . ượ ư ữ ư ộ ả ủ 4. nh RGB ( RGB Images )Ả - M t nh RGB - th ng đ c g i là ộ ả ườ ượ ọ true-color , đ c l u tr trong Matlab d i d ngượ ư ữ ướ ạ m t m ng d li u có kích th c 3 chi u mxnx3 đ nh nghĩa các giá tr màu red, green vàộ ả ữ ệ ướ ề ị ị blue cho m i pixel riêng bi t . nh RGB không s d ng palette . Màu c a m i pixelỗ ệ Ả ử ụ ủ ỗ đ c quy t đ nh b i s k t h p gi a các giá tr R,G,B ( Red, Green , Blue ) đ c l uượ ế ị ở ự ế ợ ữ ị ượ ư tr trong m t m t ph ng màu t i v trí c a pixel . Đ nh d ng file đ ho l u tr nhữ ộ ặ ẳ ạ ị ủ ị ạ ồ ạ ư ữ ả 2 RGB gi ng nh m t nh 24 bít trong đó R,G,B chi m t ng ng 8 bít m t . Đi u nàyố ư ộ ả ế ươ ứ ộ ề cho phép nh n đ c 16 tri u màu khác nhau . ậ ượ ệ - M t m ng RGB có th thu c l p double , uint8 ho c uint16 . Trong m t m ng RGBộ ả ể ộ ớ ặ ộ ả thu c l p double , m i thành ph n màu có giá tr gi a 0 và 1 . M t pixel mà thành ph nộ ớ ỗ ầ ị ữ ộ ầ màu c a nó là (0,0,0) đ c hi n th v i màu đen và m t pixel mà thành ph n màu làủ ượ ể ị ớ ộ ầ (1,1,1 ) đ c hi n th v i màu tr ng . Ba thành ph n màu c a m i pixel đ c l u trượ ể ị ớ ắ ầ ủ ỗ ượ ư ữ cùng v i chi u th 3 c a m ng d li u . Ch ng h n , giá tr màu R,G,B c a pixelớ ề ứ ủ ả ữ ệ ẳ ạ ị ủ (10,5) đ c l u tr trong RGB(10,5,1) , RGB(10,5,2) và RGB(10,5,3) t ng ng . ượ ư ữ ươ ứ - Đ tính toán màu s c c a pixel t i hàng 2 và c t 3 ch ng h n , ta nhìn vào b ba giáể ắ ủ ạ ộ ẳ ạ ộ tr đ c l u tr trong (2,3,1:3) . Gi s (2,3,1) ch a giá tr 0.5176 ; (2,3,2) ch a giá trị ượ ư ữ ả ử ứ ị ứ ị 0.1608 và (2,3,3) ch a giá tr 0.0627 thì màu s c c a pixel t i (2,3 ) s là ứ ị ắ ủ ạ ẽ (0.5176,0.1608,0.0627) - Đ minh ho xa h n khái ni m ba m t ph ng màu riêng bi t đ c s d ng trongể ạ ơ ệ ặ ẳ ệ ượ ử ụ m t nh RGB , đo n mã sau đây t o m t nh RGB đ n gi n ch a các vùng liên t cộ ả ạ ạ ộ ả ơ ả ứ ụ c a R,G,B và sau đó t o m t nh cho m i m t ph ng riêng c a nó ( R,G,B ) . Nó hi nủ ạ ộ ả ỗ ặ ẳ ủ ể th m i m t ph ng màu riêng r và cũng hi n th nh g c .ị ỗ ặ ẳ ẽ ể ị ả ố RGB=reshape(ones(64,1)*reshape(jet(64),1,192),[64,64,3]); R=RGB(:,:,1); G=RGB(:,:,2); B=RGB(:,:,3); imshow(R) figure, imshow(G) figure, imshow(B) figure, imshow(RGB) Các m t ph ng màu riêng r c a m t nh RGBặ ẳ ẽ ủ ộ ả - Chú ý r ng m i m t ph ng màu riêng r ch a m t kho ng tr ng . Kho ng tr ngằ ỗ ặ ẳ ẽ ứ ộ ẳ ắ ả ắ t ng ng v i giá tr cao nh t c a m i màu riêng r . Ch ng h n trong nh m t ph ngươ ứ ớ ị ấ ủ ỗ ẽ ẳ ạ ả ặ ẳ R , vùng tr ng đ i di n cho s t p trung cao nh t c a màu đ thu n khi t . N u Rắ ạ ệ ự ậ ấ ủ ỏ ầ ế ế đ c tr n v i G ho c B ta s có màu xám . Vùng màu đen trong nh ch ra giá tr c aượ ộ ớ ặ ẽ ả ỉ ị ủ pixel mà không ch a màu đ R=0. T ng t cho các m t ph ng màu G và B .ứ ỏ ươ ự ặ ẳ 3 5. M ng nh nhi u khung hình ( Multiframe Image Arrays )ả ả ề - V i m t vài ng d ng , ta có th c n làm vi c v i m t t p h p các nh quan h v iớ ộ ứ ụ ể ầ ệ ớ ộ ậ ợ ả ệ ớ th i gian ho c khung nhìn nh MRI hay khung hình phim .ờ ặ ư - Toolbox x lý nh trong Matlab cung c p s tr giúp cho vi c l u tr nhi u nhử ả ấ ự ợ ệ ư ữ ề ả trong cùng m t m ng . M i nh đ c g i là m t khung hình ( Frame ) . N u m tộ ả ỗ ả ượ ọ ộ ế ộ m ng gi nhi u frame , chúng đ c n i theo 4 chi u . Ch ng h n , m t m ng v i nămả ữ ề ượ ố ề ẳ ạ ộ ả ớ nh có kích th c 400x300 s là m t m ng có kích th c 400x300x3x5 . M t nh chả ướ ẽ ộ ả ướ ộ ả ỉ s ho c nh c ng đ nhi u khung t ng t s là 400x300x1x5 . ố ặ ả ườ ộ ề ươ ự ẽ - S d ng l nh ử ụ ệ cat đ ch a các nh riêng r trong m t m ng nhi u khung hình .ể ứ ả ẽ ộ ả ề Ch ng h n , n u ta có m t nhóm các nh A1,A2,A3,A4 và A5 , ta có th ch a chúngẳ ạ ế ộ ả ể ứ trong m t m ng duy nh t s d ng ộ ả ấ ử ụ A=cat(4,A1,A2,A3,A4,A5 ) - Ta cũng có th trích các khung hình t m t nh nhi u khung hình . Ch ng h n , n uể ừ ộ ả ề ẳ ạ ế ta có m t nh nhi u khung hình MULTI , l nh sau đây s trích ra khung hình th 3 ộ ả ề ệ ẽ ứ FRM3=MULTI( : , : , : , 3 ) - Ghi nh r ng , trong m t m ng nh nhi u khung hình , m i nh ph i có cùng kíchớ ằ ộ ả ả ề ỗ ả ả th c và có cùng s m t ph ng . Trong m t nh ch s nhi u khung , m i nh ph i sướ ố ặ ẳ ộ ả ỉ ố ề ỗ ả ả ử d ng cùng m t b n đ màu ụ ộ ả ồ S tr giúp gi i h n v i nh nhi u khungự ợ ớ ạ ớ ả ề - Nhi u hàm trong toolbox ho t đ ng ch trên 2 ho c 3 chi u đ u tiên . Ta có th sề ạ ộ ỉ ặ ề ầ ể ử d ng chi u th 4 v i nh ng hàm này nh ng ta ph i x lý m i khung hình m t cáchụ ề ứ ớ ữ ư ả ử ỗ ộ đ c l p . Ch ng h n , l i g i hàm sau s hi n th khung hình th 7 trong m t m ngộ ậ ẳ ạ ờ ọ ẽ ể ị ứ ộ ả MULTI imshow(MULTI(: , : , : , 7 )) - N u ta truy n m t m ng vào hàm và m ng có nhi u chi u h n s chi u mà hàm đãế ề ộ ả ả ề ề ơ ố ề đ c thi t k đ ho t đ ng , k t qu có th không đoán tr c đ c . Trong m t sượ ế ế ể ạ ộ ế ả ể ướ ượ ộ ố tr ng h p , hàm đ n gi n ch x lý khung hình đ u tiên nh ng trong các tr ng h pườ ợ ơ ả ỉ ử ầ ư ườ ợ khác , s ho t đ ng không t o ra k t qu nào có ý nghĩa . ự ạ ộ ạ ế ả ả- Các hàm chuy n đ i ki u nh ể ổ ể ả - V i các thao tác nh t đ nh , s th t h u ích khi có th chuy n đ i nh t d ng nàyớ ấ ị ẽ ậ ữ ể ể ổ ả ừ ạ sang d ng khác . Ch ng h n , n u ta mu n l c m t màu nh đ c l u tr d i d ngạ ẳ ạ ế ố ọ ộ ả ượ ư ữ ướ ạ nh ch s , đ u tiên , ta nên chuy n đ i nó thành d ng nh RGB . Khi ta áp d ng phépả ỉ ố ầ ể ổ ạ ả ụ 4 l c t i nh RGB , Matlab s l c giá tr c ng đ trong nh t ng ng . N u ta cọ ớ ả ẽ ọ ị ườ ộ ả ươ ứ ế ố g ng l c nh ch s , Matlab đ n gi n ch áp đ t phép l c t i ma tr n nh ch s vàắ ọ ả ỉ ố ơ ả ỉ ặ ọ ớ ậ ả ỉ ố k t qu s không có ý nghĩa ế ả ẽ Chú ý : Khi convert m t nh t d ng này sang d ng khác , nh k t qu có th khácộ ả ừ ạ ạ ả ế ả ể nh ban đ u . Ch ng h n , n u ta convert m t nh màu ch s sang m t nh c ng đả ầ ẳ ạ ế ộ ả ỉ ố ộ ả ườ ộ , k t qu ta s thu đ c m t nh đen tr ng .ế ả ẽ ượ ộ ả ắ - Danh sách sau đây s li t kê các hàm đ c s d ng trong vi c convert nh :ẽ ệ ượ ử ụ ệ ả + dither : T o m t nh nh phân t m t nh c ng đ đen tr ng b ng cách tr n , t oạ ộ ả ị ừ ộ ả ườ ộ ắ ằ ộ ạ m t nh ch s t m t nh RGB b ng cách tr ng (dither )ộ ả ỉ ố ừ ộ ả ằ ộ + gray2id : T o m t nh ch s t m t nh c ng đ đen tr ng .ạ ộ ả ỉ ố ừ ộ ả ườ ộ ắ + grayslice : T o m t nh ch s t m t nh c ng đ đen tr ng b ng cách đ tạ ộ ả ỉ ố ừ ộ ả ườ ộ ắ ằ ặ ng ng ưỡ + im2bw : T o m t nh nh phân t m t nh c ng đ , nh ch s hay nh RGBạ ộ ả ị ừ ộ ả ườ ộ ả ỉ ố ả trên c s c a ng ng ánh sáng .ơ ở ủ ưỡ + ind2gray : T o m t nh c ng đ đen tr ng t m t nh ch s ạ ộ ả ườ ộ ắ ừ ộ ả ỉ ố + ind2rgb : T o m t nh RGB t m t nh ch s ạ ộ ả ừ ộ ả ỉ ố + mat2gray : T o m t nh c ng đ đen tr ng t d li u trong m t ma tr n b ngạ ộ ả ườ ộ ắ ừ ữ ệ ộ ậ ằ cách l y t l gi li u ấ ỉ ệ ữ ệ + rgb2gray : T o m t nh c ng đ đen tr ng t m t nh RGBạ ộ ả ườ ộ ắ ừ ộ ả + rgb2ind : T o m t nh ch s t m t nh RGBạ ộ ả ỉ ố ừ ộ ả - Ta cũng có th th c hi n các phép chuy n đ i ki u ch s d ng cú pháp c a Matlab .ể ự ệ ể ổ ể ỉ ử ụ ủ Ch ng h n , ta có th convert m t nh c ng đ sang nh RGB b ng cách ghép n i 3ẳ ạ ể ộ ả ườ ộ ả ằ ố ph n copy c a ma tr n nh g c gi a 3 chi u :ầ ủ ậ ả ố ữ ề RGB=cat(3,I,I,I ); - nh RGB thu đ c có các ma tr n đ ng nh t cho các m t ph ng R,G,B vì v y nhẢ ượ ậ ồ ấ ặ ẳ ậ ả hi n th gi ng nh bóng xám .ể ị ố ư - Thêm vào nh ng công c chuy n đ i chu n đã nói trên , cũng có m t s hàm màữ ụ ể ổ ẩ ở ộ ố tr l i ki u nh khác nh m t ph n trong thao tác mà chúng th c hi n . Xem thêmả ạ ể ả ư ộ ầ ự ệ Help Online Chuy n đ i không gian màu ể ổ - Toolbox x lý nh bi u di n màu s c nh các giá tr RGB ( tr c ti p trong nh RGBử ả ể ễ ắ ư ị ự ế ả ho c gián ti p trong nh ch s ) . Tuy nhiên , có các ph ng pháp khác cho vi c bi uặ ế ả ỉ ố ươ ệ ể 5 di n màu s c . Ch ng h n , m t màu có th đ c đ i di n b i các giá tr ễ ắ ẳ ạ ộ ể ượ ạ ệ ở ị hue , saturation và các giá tr thành ph n (HSV ) . Các ph ng pháp khác cho vi c bi u di nị ầ ươ ệ ể ễ màu đ c g i là không gian màu .ượ ọ - Toolbox cung c p m t t p các th t c đ chuy n đ i gi a các không gian màu . Cácấ ộ ậ ủ ụ ể ể ổ ữ hàm x lý nh t chúng coi d li u màu s c d i d ng RGB tuy nhiên , ta có th x lýử ả ự ữ ệ ắ ướ ạ ể ử m t nh mà s d ng các không gian màu khác nhau b ng cách chuy n đ i nó sangộ ả ử ụ ằ ể ổ RGB sau đó chuy n đ i nh đã đ c x lý tr l i không gian màu ban đ u . ể ổ ả ượ ử ở ạ ầ ầ- Đ c và ghi d li u nh ọ ữ ệ ả - Ph n này s gi i thi u cách đ c và ghi d li u nh ầ ẽ ớ ệ ọ ữ ệ ả 1. Đ c m t nh đ ho ọ ộ ả ồ ạ - Hàm imread đ c m t nh t b t kì đ nh d ng nào đ c tr giúp trong b t kì chi uọ ộ ả ừ ấ ị ạ ượ ợ ấ ề sâu bit nào đ c tr giúp . H u h t các file nh s d ng 8 bít đ ch a giá tr c aượ ợ ầ ế ả ử ụ ể ứ ị ủ pixel . Khi chúng đ c đ c vào b nh , Matlab ch a chúng d i d ng uint8 . V i cácượ ọ ộ ớ ứ ướ ạ ớ file tr giúp 16 bít d li u , PNG và TIFF , Matlab ch a chúng d i d ng uint16ợ ữ ệ ứ ướ ạ Chú ý : V i nh ch s , imread luôn luôn đ c b n đ màu vào trong m t chu i thu cớ ả ỉ ố ọ ả ồ ộ ỗ ộ l p double , th m chí m ng nh t nó thu c l p uint8 hay uint16ớ ậ ả ả ự ộ ớ - Ch ng h n , đo n mã sau s đ c m t nh RGB vào không gian làm vi c c a Matlabẳ ạ ạ ẽ ọ ộ ả ệ ủ l u trong bi n RGBư ế RGB=imread(‘football.jpg’); - Trong ví d này , imread s nh n ra đ nh d ng file đ s d ng t tên file . Ta cũng cóụ ẽ ậ ị ạ ể ử ụ ừ th ch ra đ nh d ng file nh m t tham s trong hàm imread . Matlab tr giúp r t nhi uể ỉ ị ạ ư ộ ố ợ ấ ề đ nh d ng đ ho thông d ng ch ng h n : BMP , GIF , JPEG , PNG , TIFF … Đ bi tị ạ ồ ạ ụ ẳ ạ ể ế thêm các ki u g i hàm và tham s truy n vào , xem tr giúp online c a Matlab .ể ọ ố ề ợ ủ Đ c nhi u nh t m t file đ ho ọ ề ả ừ ộ ồ ạ - Matlab tr giúp m t s đ nh d ng file đ ho ch ng h n nh : HDF và TIFF , chúngợ ộ ố ị ạ ồ ạ ẳ ạ ư ch a nhi u nh . Theo m c đ nh , imread ch tr giúp nh đ u tiên trong file . Đ nh pứ ề ả ặ ị ỉ ợ ả ầ ể ậ thêm các nh t file , s d ng cú pháp đ c tr giúp b i đ nh d ng file . Ch ng h n ,ả ừ ử ụ ượ ợ ở ị ạ ẳ ạ khi đ c s d ng v i TIFF , ta có th s d ng m t giá tr ch s v i imread đ ch raượ ử ụ ớ ể ử ụ ộ ị ỉ ố ớ ể ỉ nh mà ta mu n nh p vào . Ví d sau đây đ c m t chu i 27 nh t m t file TIFF vàả ố ậ ụ ọ ộ ố ả ừ ộ l u nh ng nh anỳ trong m t m ng 4 chi u . Ta có th s d ng hàm ư ữ ả ộ ả ề ể ử ụ iminfo đ xemể bao nhiêu nh đã đ c l u tr trong file :ả ượ ư ữ mri = uint8(zeros(128,128,1,27)); % preallocate 4-D array 6 for frame=1:27 [mri(:,:,:,frame),map] = imread('mri.tif',frame); end - Khi file ch a nhi u nh theo m t s ki u nh t đ nh ch ng h n theo th t th i gian ,ứ ề ả ộ ố ể ấ ị ẳ ạ ứ ự ờ ta có th l u nh trong Matlab d i d ng m ng 4 chi u . T t c các nh ph i có cùngể ư ả ướ ạ ả ề ấ ả ả ả kích th c . ướ 2. Ghi m t nh đ ho ộ ả ồ ạ - Hàm imwrite s ghi m t nh t i m t file đ ho d i m t trong các đ nh d ng đ cẽ ộ ả ớ ộ ồ ạ ướ ộ ị ạ ượ tr giúp . C u trúc c b n nh t c a imwrite s yêu c u m t bi n nh và tên file . N uợ ấ ơ ả ấ ủ ẽ ầ ộ ế ả ế ta g p m t ph n m r ng trong tên file , Matlab s nh n ra đ nh d ng mong mu n tộ ộ ầ ở ộ ẽ ậ ị ạ ố ừ nó . Ví d sau t i m t nh ch s X t m t file Mat v i b n đ màu k t h p v i nóụ ả ộ ả ỉ ố ừ ộ ớ ả ồ ế ợ ớ map sau đó ghi nh xu ng m t file bitmap .ả ố ộ load clown whos Name Size Bytes Class X 200x320 512000 double array caption 2x1 4 char array map 81x3 1944 double array Grand total is 64245 elements using 513948 bytes imwrite(X,map,'clown.bmp') Ch ra đ nh d ng ph - Tham s đ c bi t ỉ ị ạ ụ ố ặ ệ - Khi s d ng imwrite v i m t s đ nh d ng đ ho , ta có th ch ra các tham s ph .ử ụ ớ ộ ố ị ạ ồ ạ ể ỉ ố ụ Ch ng h n , v i đ nh d ng PNG ta có th ch ra đ sâu bít nh m t tham s ph . Víẳ ạ ớ ị ạ ể ỉ ộ ư ộ ố ụ d sau s chi m t nh c ng đ I v i m t file nh 4 bít PNG ụ ẽ ộ ả ườ ộ ớ ộ ả imwrite(I,'clown.png','BitDepth',4 ); - Đ bi t thêm các c u trúc khác c a hàm xem ph n tr giúp tr c tuy n c a Matlab .ể ế ấ ủ ầ ợ ự ế ủ Đ c và ghi nh nh phân theo đ nh d ng 1 bítọ ả ị ị ạ 7 - Trong m t s đ nh d ng file , m t nh nh phân có th đ c l u trong m t đ nh d ngộ ố ị ạ ộ ả ị ể ượ ư ộ ị ạ 1 bít . N u đ nh d ng file tr giúp nó ,Matlab ghi nh nh phân nh nh 1 bít theo m cế ị ạ ợ ả ị ư ả ặ đ nh . Khi ta đ c m t nh nh phân v i đ nh d ng 1 bít , Matlab đ i di n nó trongị ọ ộ ả ị ớ ị ạ ạ ệ không gian làm vi c nh m t m ng lôgíc .ệ ư ộ ả - Ví d sau đ c m t nh nh phân và ghi nó d i d ng file TIFF . B i vì đ nh d ngụ ọ ộ ả ị ướ ạ ở ị ạ TIFF tr giúp nh 1 bít , file đ c ghi lên đĩa theo đ nh d ng 1 bít :ợ ả ượ ị ạ BW = imread('text.png'); imwrite(BW,'test.tif'); Đ ki m tra chi u sâu bít c a file test.tif , g i hàm iminfo và ki m tra tr ng BitDepthể ể ề ủ ọ ể ườ c a nó :ủ info = imfinfo('test.tif'); info.BitDepth ans = 1 Chú ý : Khi gi file nh phân , Matlab thi t l p tr ng ColorType thành ‘grayscale’ị ế ậ ườ Xem l p l u tr c a file ớ ư ữ ủ - Hàm imwrite s d ng lu t sau đây đ quy t đ nh l p l u tr đ c s d ng trong nhử ụ ậ ể ế ị ớ ư ữ ượ ử ụ ả k t qu :ế ả + logical : N u đ nh d ng nh ra ( Output Image ) đ c ch rõ là tr giúp nh 1 bít ,ế ị ạ ả ượ ỉ ợ ả hàm imwrite t o m t file nh 1 bít . N u đ nh d ng nh ra đ c ch rõ là không trạ ộ ả ế ị ạ ả ượ ỉ ợ giúp nh 1 bít ( nh JPEG ) , hàm imwrite chuy n nh t i m t nh thu c l p uint8ả ư ể ả ớ ộ ả ộ ớ + uint8 : N u đ nh d ng nh ra đ c ch rõ là tr giúp nh 8 bít , hàm imwrite t o m tế ị ạ ả ượ ỉ ợ ả ạ ộ nh 8 bít ả +uint16 : N u đ nh d ng nh ra đ c ch rõ tr giúp nh 16 bít ( PNG ho c TIFF ) ,ế ị ạ ả ượ ỉ ợ ả ặ hàm imwrite t o m t nh 16 bít . N u đ nh d ng nh ra không tr giúp nh 16 bít ,ạ ộ ả ế ị ạ ả ợ ả hàm chuy n đ i d li u nh t i l p uint8 và t o m t nh 8 bít .ể ổ ữ ệ ả ớ ớ ạ ộ ả +double : Matlab chuy n d li u nh t i d ng uint8 và t o m t nh 8 bít b i vì h uể ữ ệ ả ớ ạ ạ ộ ả ở ầ h t các file nh s d ng đ nh d ng 8 bít . ế ả ử ụ ị ạ 2. Truy v n m t file đ ho ấ ộ ồ ạ 8 - Hàm iminfo cho phép ta có th nh n đ c thông tin v m t file nh đ c tr giúpể ậ ượ ề ộ ả ượ ợ b i toolbox . Thông tin mà ta nh n đ c ph thu c vào ki u c a file nh ng nó luônở ậ ượ ụ ộ ể ủ ư bao g m nh ng thông tin sau :ồ ữ + Tên c a file nh ủ ả + Đ nh d ng file nhị ạ ả + S version c a đ nh d ng fileố ủ ị ạ + Ngày s a đ i file g n nh t ử ổ ầ ấ + Kích th c file tính theo byteướ + Chi u r ng nh tính theo pixelề ộ ả + Chi u cao nh tính theo pixelề ả + S l ng bít trên m t pixelố ượ ộ + Ki u nh : RGB, ch s …ể ả ỉ ố ố- Chuy n đ i đ nh d ng các file nh ể ổ ị ạ ả - Đ thay đ i đ nh d ng đ ho c a m t nh , s d ng hàm imread đ đ c m t nh vàể ổ ị ạ ồ ạ ủ ộ ả ử ụ ể ọ ộ ả sau đó l u nó v i hàm imwrite đ ng th i ch ra đ nh d ng t ng ng .ư ớ ồ ờ ỉ ị ạ ươ ứ - Đ minh ho , ví d sau đây s d ng hàm imread đ đ c m t file BMP vào khôngể ạ ụ ử ụ ể ọ ộ gian làm vi c .Sau đó , hàm imwrite l u nh này d i đ nh d ng PNG ệ ư ả ướ ị ạ bitmap = imread('mybitmap.bmp','bmp'); imwrite(bitmap,'mybitmap.png','png'); i - Đ c và ghi nh DICOMọ ả - Toolbox x lý nh bao g m tr giúp cho vi c thao tác v i nh s ( Digital Imaging )ử ả ồ ợ ệ ớ ả ố và nh y h c (Communication in Medicine ) .ả ọ 1. Đ c d li u nh t m t file DICOMọ ữ ệ ả ừ ộ - Đ đ c m t d li u nh t m t file DICOM , s d ng hàm đicomread . Hàm nàyể ọ ộ ữ ệ ả ừ ộ ử ụ đ c các file tuân theo đ c tr ng DICOM nh ng có th đ c đ c các file không theoọ ặ ư ư ể ọ ượ chu n chung nào ẩ - Ví d sau đây đ c m t nh t m t file DICOM m u đi kèm v i toolbox .ụ ọ ộ ả ừ ộ ẫ ớ I = dicomread('CT-MONO2-16-ankle.dcm'); Đ xem d li u nh , s d ng hàm hi n th c a toolbox – imshow ho c imview ( Doể ữ ệ ả ử ụ ể ị ủ ặ d li u nh là s 16 bít có d u , ta ph i s d ng c u trúc t chuy n đ i v i m i hàmữ ệ ả ố ấ ả ử ụ ấ ự ể ổ ớ ỗ hi n th )ể ị imview(I,[]) 9 2. Đ c Metadata t m t file DICOMọ ừ ộ - Các file DICOM bao g m các thông tin đ c g i là Metadata . Nh ng thông tin nàyồ ượ ọ ữ mô t t c tính c a d li u nh nó n m gi nh : kích th c , chi u , chi u sâu bít .ả ặ ủ ữ ệ ả ắ ữ ư ướ ề ề Thêm vào đó , đ c tr ng DICOM đ nh nghĩa nhi u các tr ng metadata khác đ mô tặ ư ị ề ườ ể ả các đ c tính khác c a d li u nh : cách th c đ c s d ng đ t o d li u , thi t l pặ ủ ữ ệ ư ứ ượ ử ụ ể ạ ữ ệ ế ậ thi t b dùng đ ch p nh , thông tin v vi c nghiên c u …Hàm dicomread có th xế ị ể ụ ả ề ệ ứ ể ử lý h u h t t t c các tr ng metadata đ c đ nh nghĩa b i đ c tr ng DICOM ( hayầ ế ấ ả ườ ượ ị ở ặ ư chu n DICOM ) ẩ - Đ đ c metadata t m t file DICOM , s d ng hàm dicominfo . Hàm này tr v m tể ọ ừ ộ ử ụ ả ề ộ c u trúc metadata mà m i tr ng trong c u trúc là m t ph n đ c tr ng c a metadataấ ọ ườ ấ ộ ầ ặ ư ủ trong file DICOM đó . info = dicominfo('CT-MONO2-16-ankle.dcm'); info = Filename: [1x47 char] FileModDate: '24-Dec-2000 19:54:47' FileSize: 525436 Format: 'DICOM' FormatVersion: 3 Width: 512 Height: 512 BitDepth: 16 ColorType: 'grayscale' SelectedFrames: [] FileStruct: [1x1 struct] StartOfPixelData: 1140 MetaElementGroupLength: 192 FileMetaInformationVersion: [2x1 double] MediaStorageSOPClassUID: '1.2.840.10008.5.1.4.1.1.7' MediaStorageSOPInstanceUID: [1x50 char] TransferSyntaxUID: '1.2.840.10008.1.2' 10 [...]... roicolor lựa chọn một vùng quan tâm trong một ảnh chỉ số hoặc ảnh cường độ và trả về một ảnh nhị phân + BW=roicolor(A,low,high) : trả về một vùng quan tâm được lựa chọn với những pixel nằm trong khoảng giữa low và high trong bản đồ màu sắc BW = (A >= low) & (A