• Nenhum resultado encontrado

Xu_Ly_Anh

N/A
N/A
Protected

Academic year: 2021

Share "Xu_Ly_Anh"

Copied!
58
0
0

Texto

(1)

Giới thiệu chung:

Khoa học nhận dạng và xử lý ảnh là một trong những lĩnh vực có nhiều ứng dụng trong thực tiễn. Ngày nay có rất nhiều ứng dụng cần đến thông tin hình ảnh như hệ thông tin văn phòng, các hệ bản đồ, hệ thông tin địa lý, trong quân sự, y học... Việc xử lý dữ liệu ảnh bằng đồ họa đề cập đến các ảnh nhân tạo. Mục đích chính đặt ra cho xử lý ảnh bao gồm:

Phần 1: Từ ảnh của đối tượng trong tự nhiên thu lại thành ảnh số, sau đó qua các bước biến đổi để nâng cao chất lượng của ảnh thu được nhiều thông tin hơn, có thể quan sát bằng mắt. Quá trình này là biến đổi ảnh (Image transformation) hay làm đẹp ảnh (Image Enhancement).

Phần 2: Tự động nhận biết hoặc đánh giá nội dung các ảnh. Quá trình nhận dạng ảnh (Patten Recognition) hay đoán nhận ảnh (Image Understanding).

Tài liệu tham khảo

1. Ngô Diên Tập, Xử lý ảnh bằng máy tính, Nhà xuất bản Khoa học và Kỹ thuật Hà Nội. 2. Lương Mạnh Bá, Nguyễn Thành Thủy, Nhập môn xử lý ảnh số, Nhà xuất bản Khoa học và Kỹ thuật Hà Nội, 2003.

3. Võ Đức Khánh, Giáo trình Xử lý ảnh, Nhà xuất bản Thống kê, 20003.

PHẦN THỨ NHẤT: LÝ THUYẾT ẢNH SỐ

Chương I. Tổng quan về xử lý ảnh

1.1. Các giai đoạn của một quá trình xử lý ảnh

Bao gồm 5 giai đoạn như dưới sơ đồ:

Thu nhận ảnh Tiền xử Phân đoạn Tách ra các đặc tính Phân loại 1.1.1. Thu nhận ảnh

Ảnh sử dụng trong tin học được thu nhận từ nhiều nguồn bằng một số thiết bị như: máy quay, vệt tinh hoặc máy quét chuyên dụng. Mục đích của các thiết bị này là chuyển các thông tin dưới dạng hình ảnh thành các cấu trúc lưu trữ được trong máy tính và hiển thị ra các thiết bị hiển thị như màn hình, máy in...

(2)

Tiến trình trong thu nhận ảnh:

+ Biến đổi năng lượng quang học thành năng lượng điện. + Tổng hợp năng lượng điện thành ảnh số hay ma trận số. 1.1.2. Xử lý trước

Là dùng các kỹ thuật xử lý ảnh để làm tốt ảnh theo mục đích sử dụng nhằm phục vụ cho các bước xử lý tiếp theo.

Những mục đích riêng biệt có thể đặt ra cho quá trình tiền xử lý là:

+ Thực hiện điều chỉnh độ chiếu sáng để khắc phục hậu quả của sự chiếu sáng không đồng đều.

+ Giảm nhỏ thành phần nhiễu.

+ Cải thiện độ tương phản của ảnh màu do khuôn màu không tốt.

+ Hiệu chỉnh độ méo giá trị xám không tuyến tính gây nên từ hiệu ứng chụp ảnh. + Loại bỏ tính không đồng thể của ảnh gây nên từ tính không đồng bộ của lớp nhạy quang của hệ thống thu nhận ảnh.

+ Chuẩn hóa độ lớn, dạng và màu.

+ Điều chỉnh bộ lọc để khuyếch đại các tần số với những thông tin quan trọng được khuyếch đại và nén đi các tần số khác.

1.1.3. Phân đoạn

Phân chia các đối tượng cần khảo sát ra khỏi phần nội dung còn lại của ảnh, phân tách các đối tượng tiếp giáp nhau và phân tách những đối tượng riêng biệt thành những đối tượng con. Một phương pháp phân đoạn ảnh là sử dụng một ngưỡng giá trị xám để phân tách ảnh thành đối tượng và nền ( những điểm dưới ngưỡng xám thuộc về nền, ngược lại thuộc về đối tượng).

1.1.4. Tách ra các đặc tính

Dựa trên các thông tin thu nhận được qua quá trình phân đoạn, kết hợp với các kỹ thuật xử lý để đưa ra các đặc trưng, đối tượng ảnh cũng như các thông tin cần thiết trong quá trình xử lý. Nhờ các đặc tính có được từ ảnh ta có thể phân loại các đối tượng khác nhau của ảnh.

(3)

Thực hiện công việc sắp xếp một đối tượng vào một lớp đối tượng cho trước. Để giải quyết bài toán này thì các đặc tính có ý nghĩa phải được lựa chọn. Ta tìm thấy các đặc tính có ý nghĩa khi ta phân tích các mẫu được lựa chọn từ những đối tượng khác nhau. 1.2. Thụ cảm thị giác

1.2.1. Quá trình thu nhận tín hiệu ở võng mạc

Hệ thống quang học ở con người là một hệ thống thấu kính được sắp xếp, định tâm một cách không cố định. Hệ thống này tạo ra trên võng mạc một ảnh thu nhỏ và lộn ngược của cảnh vật xung quạnh ta. Bề mặt phía sau, bên trong của mắt được che phủ bởi võng mạc, ánh sáng chiếu vào mắt thì được hội tụ bởi thị kính trên võng mạc và tạo ra một hiệu điện thế ở những tế bào nhạy sáng hình que và hình nón nằm ở điểm hội tụ. Tín hiệu điện thế này được khuyếch đại và truyền đến nào qua các tế bào, dây thần kinh. 1.2.2. Sự thụ cảm sáng tối

Khả năng nhận biết của mắt đối với một đốm sáng phụ thuộc vào độ sáng, kích thước, độ kéo dài của thời gian xuất hiện và cả độ sáng của nền. Ví dụ như cùng một điểm đen, người quan sát sẽ cảm thấy khi đặt trên nền xám nó sáng hơn khi đặt trên nền sáng.

1.2.3. Sự thụ cảm màu sắc

Hiện tượng đáp ứng xảy ra đối với cường độ ánh sáng cũng diễn ra tượng tự với sự nhạy cảm màu. Sự đáp ứng đối với một màu cũng làm ảnh hưởng đến sự thụ cảm đối với một tông màu khác. Chẳng hạn khi nhìn vào màu xám ta có cảm giác là màu đỏ nếu nó xuất hiện sau màu lục hoặc trước nền màu lục.

1.2.4. Sự thụ cảm đồ vật

Khi ta quan sát một đồ vật, mạng thần kinh thị giác sẽ phân tách nó ra thành các đối tượng cơ bản. Tuy nhiên cùng với một sự vật, mạng thần kinh thị giác sẽ nhận biết nó khác nhau trong từng trường hợp cụ thể. Ví dụ cung một hình chữ nhật, khi vẽ nó trong các đường trong đồng tâm ta sẽ có cảm giác các cạnh của nó bị cong vào phía trong.

(4)

Ch−¬ng II. Nh÷ng kh¸i niÖm c¬ b¶n

2.1. M« t¶ ¶nh

2.1.1.Pixel (Picture Element): phần tử ảnh.

Ảnh trong thực tế là ảnh liên tục về không gian và giá trị độ sáng. Để XLA người ta phải tiến hành số hóa, quá trình số hóa là quá trình biến đổi tín hiệu liên tục sang tín hiệu rời rác thông qua quá trình lấy mẫu(rời rạc hóa về không gian) và lượng tử hóa thành phần giá trị(rời rạc hóa biên độ giá trị) mà về nguyên tắc mắt thường không phân biệt được hai mức kề nhau. Trong quá trình này ta sử dụng khái niệm Pixel.

2.1.2. Mức xám

kết quả của sự biến đổi tương ứng một giá trị độ sáng của một điểm ảnh với một giá trị nguyên dương. Thông thường nó xác định trong khoảng [0..255]. Tùy thuộc vào giá trị xám mà mỗi điểm ảnh được biểu diễn trên 1, 4, 8, 24 hay 32 bit.

2.1.3. Ảnh

Là tập hợp hữu hạn các điểm ảnh, thường được biểu diễn bằng một mảng hai chiều I(n,m) với n là số hàng, m là số cột. Ta ký hiệu P(x,y) là một điểm ảnh tại vị trí (x, y).

Số lượng điểm ảnh trên mỗi hàng hoặc các hàng xác định độ phân giải của ảnh. 2.1.4. Phân loại ảnh

• Ảnh nhị phân

Giá trị xám của tất các các điểm ảnh chỉ nhận giá trị 1 hoặc 0. Như vậy mỗi điểm ảnh trong ảnh nhị phân được biểu diễn bới 1 bit.

• Ảnh xám

Giá trị xám nằm trong khoảng 0..255. Như vậy mỗi điểm ảnh trong ảnh nhị phân được biểu diễn bới 1 byte.

• Ảnh mầu

Hệ mầu RGB: Thông tin con người thu nhận bằng hình ảnh đều bắt nguồn từ thị giác. Mắt con người có khả năng phân biệt được rõ nét 3 mầu:

+ Đỏ - RED (R) + Lục – GREEN (G) + Lam – BLUE (B)

Các ảnh mầu nói chung đều bao gồm 3 ảnh xám đối với màu nền đỏ, lục và lam. Tất các màu sắc trong tự nhiên đều có thể tổng hợp từ 3 thành phần mầu nói trên.

(5)

Mô hình RGB còn gọi là mô hình cộng tính, mỗi mức xám của ảnh sẽ được biểu diễn bởi 3 thành phần: R, G, B (Mỗi thành phần được biểu diễn bởi 1 byte).

Lôc(0,1,0) Vµng(1,1,0) §á c« ban(0, 1,1) Tr¾ng (1, 1, 1) §en(0,0,0) §á(1,0,0) Lam(0,0,1 ) §á lila (1,0,1)

Hệ mầu CMY( CYAN- MAGENTA- YELLOW): là phần bù của hệ mầu RGB theo nguyên tắc: C + R = M + G = B + Y =(1, 1, 1). Hệ mầu này thường dùng để in.

§á lila(0,1,0) Lam(1,1,0) §á (0, 1,1) §eb (1, 1, 1)

Tr¾ng(0,0,0) §á c« ban (1,0,0)

Vµng(0,0,1 ) Lôc (1,0,1)

Hệ mầu CMYK( CYAN- MAGENTA- YELLOW- BLACK): Xuất phát từ hệ mầu CMY với K là độ đậm nhạt của mầu. K. Với C, M, K được xác định từ CMY( C1, M1, Y1) như sau: K = min(C1, M1, Y1, K); C = C1-K; M=M1-K; Y= Y1-K.

2.2. C¸c tÝnh chÊt thèng kª cña ¶nh 2.2.1. BiÓu ®å tÇn suÊt - Histogram

BiÓu ®å tÇn suÊt cña ¶nh lµ mét hµm cung cÊp tÇn suÊt xuÊt hiÖn cña mçi møc x¸m trong ¶nh. BiÓu ®å tÇn suÊt ®−îc biÓu diÔn trong hÖ täa ®å Decac xOy, trong ®ã Ox biÓu diÔn c¸c møc x¸m cña ¶nh, Oy biÓu diÔn sè ®iÓm ¶nh.

BiÓu ®å tÇn suÊt cung cÊp th«ng tin vÒ sù ph©n bè møc x¸m cña ¶nh. BiÓu ®å tÇn suÊt cßn ®−îc gäi lµ tÝnh ®éng cña ¶nh, tÝnh ®éng cña ¶nh cho phÐp ph©n tÝch mét kho¶ng nµo ®ã ph©n bè phÇn lín c¸c møc x¸m cña ¶nh: ¶nh rÊt s¸ng hay rÊt ®Ëm.

BiÓu ®å tÇn suÊt ®−îc sö dông rÊt nhiÒu trong nhËn d¹ng vµ xö lý ¶nh nh− mét chøc n¨ng h÷u hiÖu cho viÖc hiÖu chØnh gãc nghiªng, ®é lÖch, t¸ch c¸c ®èi t−îng h×nh häc, x¸c ®Þnh gi¸ trÞ x¸m trung b×nh... Cã hai lo¹i biÓu ®å tÇn suÊt lµ Histogram ngang vµ däc. Histogram ngang vµ däc cña ¶nh lµ tæng sè c¸c ®iÓm ¶nh cã cïng mét møc x¸m trªn mét hµng ngang hay cét däc cña ¶nh.

(6)

Khi ph©n tÝch, thèng kª mét ¶nh tõ biÓu ®å tÇn suèt ta cã biÓu ®å cét tuyÖt ®èi H(z) cña c¸c møc x¸m, biÓu ®å cét t−¬ng ®èi h(z) = H(z)/N – N: tæng sè ®iÓm ¶nh => 0<=h(z)<=1 vµ Sum(h(z)) = 1 (z=z0..zm

Gi¸ trÞ x¸m trung b×nh: ztb= sum(z.h(z)) (z=z0..zm)

2.2.2. Ma trËn chuyÓn tiÕp c¸c gi¸ trÞ x¸m

BiÓu ®å tÇn xuÊt kh«ng quan t©m ®Õn cÊu tróc ¶nh, bëi v× c¸c gi¸ trÞ x¸m ®−îc kh¶o s¸t riªng lÎ. V× thÕ cã thÓ nhËn ®−îc cïng mét biÓu ®å tõ hai ¶nh hoµn toµn kh¸c nhau. §Ó kh¾c phôc ma trËn chuyÓn tiÕp c¸c gi¸ trÞ x¸m ®−îc x©y dùng, nã hç trî ®Ó ta cã ®−îc nh÷ng nhËn xÐt vÒ cÊu tróc cña ¶nh.

§Ó x©y dùng ma trËn chuyÓn tiÕp gi¸ trÞ x¸m Cδ(i,j) cña ¶nh B(x,y) cÇn ph¶i cho tr−íc mét vÐct¬ δ=(Dx, Dy), vÐct¬ nµy kh¼ng ®Þnh vÞ trÝ t−¬ng ®èi cña cÆp ®iÓm ¶nh ®øng c¹nh nhau. Mçi phÇn tö cña ma trËn Cδ(i,j) chØ ra x¸c suèt hai ®iÓm ¶nh c¹nh nhau B1(x, Dy) vµ B2(x+Dx, y+Dy) mµ kho¶ng c¸ch ®−îc x¸c ®Þnh bëi δ=(Dx, Dy) chiÕm gi¸ trÞ x¸m i hay j (h×nh). Qua ®ã tÇn suÊt tuyÖt ®èi cña cÆp ®iÓm ®−îc viÕt vµo, cÆp nµy xuÊt hiÖn víi gi¸ trÞ x¸m i vµ j ë vÞ trÝ m« t¶ b»ng δ. §é dµi vµ ®Þnh h−íng cña δ ®Òu dÉn ®Õn c¸c ma trËn riªng biÖt. BËc cña ma trËn Cδ(i,j) phô thuéc vµo sè møc x¸m cña ¶nh.

2.3. L−îng tö hãa c¸c ¶nh

C¸c ¶nh xuÊt hiÖn trong tù nhiªn nh− nh÷ng tÝn hiÖu liªn tôc tr¶i réng theo c¸c h−íng, ®Ó xö lý ®−îc trªn m¸y tÝnh c¸c ¶nh ®−îc quÐt vµo vµ h¹n chÕ b»ng mét cöa sæ ®Ó cã ®−îc sù tr¶i réng h÷u h¹n. C¸c gi¸ trÞ x¸m cña ¶nh còng cÇn ®−îc gi¸n ®o¹n hãa. Sù chuyÓn tiÕp tõ c¸ch m« t¶ liªn tôc sang gi¸n ®o¹n ®−îc gäi lµ sù l−îng tö hãa.

Sù l−îng tö hãa cña ¶nh liªn quan mét mÆt ®Õn sù l−îng tö hãa cña ®é ph©n gi¶i theo vÞ trÝ, mÆt kh¸c liªn quan tíi sù l−îng tö hãa gi¸ trÞ x¸m cña ¶nh B(x, y).

2.3.1. L−îng tö hãa thµnh nh÷ng l−íi theo vÞ trÝ B(x,y)

B(x+Dx ,y+Dy)

(7)

Mét ¶nh cã thÓ l−îng tö hãa thµnh c¸c l−íi (raster) theo nh÷ng vÞ trÝ kh¸c nhau. Th«ng th−êng ta sö dông c¸c hµm mò cña 2 ®Ó x¸c ®Þnh kÝch th−íc l−íi. Sai sè l−îng tö cña ¶nh ®−îc m« t¶ nh− vi sai cña ¶nh gèc vµ ¶nh ®· qua l−îng tö hãa.

Ngµy nay c¸c m¸y quÐt cã thÓ quÐt tíi 4096x4096 ®iÓm ¶nh t−¬ng øng víi d÷ liÖu 16Mb. Mét ¶nh ®−îc quÐt cµng th« thi sai sè l−îng tö hãa cµng lín.

2.3.2. L−îng tö hãa gi¸ trÞ x¸m

§Ó l−îng tö hãa gi¸ trÞ x¸m, cïng gi¸ trÞ ®−îc chia thµnh c¸c kho¶ng gi¸ trÞ x¸m liªn tiÕp vµ c¸ch ®Òu nhau. C¸c kho¶ng nµy ®−îc biÓu diÔn bëi mét gi¸ trÞ x¸m.

2.5. BiÓu diÔn ¶nh

2.5.1. C¸c ®Þnh d¹ng ¶nh 2.5.1.1, CÊu tróc File ¶nh IMG

Lµ ¶nh ®en tr¾ng. Gåm 2 phÇn. PhÇn ®Çu bao gåm 16 byte

• 6 byte ®Çu: ®¸nh dÊu ®Þnh d¹ng ¶nh IMG, gi¸ trÞ cña 6 byte d−íi d¹ng Hexa 0x0001 0x0008 0x0001

• 2 byte tiÕp theo chøa ®é dµi mÉu tin. §ã lµ ®é dµi cña d·y c¸c byte kÒ liÒn nhau mµ d·y ®−îc lËp l¹i mét sè lÇn nµo ®ã. Sè lÇn lËp l¹i sÏ ®−îc l−u trong byte ®Õm. NhiÒu d·y gièng nhau ®−îc l−u trong mét byte.

• 4 byte tiÕp theo: m« t¶ kÝch cì pixcel • 2 byte tiÕp: sè pixel trªn mét dßng ¶nh • 2 byte cuèi: sè dßng trong ¶nh

PhÇn d÷ liÖu

¶nh IMG ®−îc nÐn theo c¸c dßng, mçi dßng bao gåm c¸c gãi, c¸c dßng gièng nhau ®−îc nÐn thµnh mét gãi. Cã 4 lo¹i gãi sau:

• Lo¹i 1: gãi c¸c dßng gièng nhau

Quy c¸ch gãi tin nh− sau: 0x00 0x00 0xFF Count . Ba byte ®Çu cho biÕt sè c¸c d·y gièng nhau; byte cuèi cho biÕt sè c¸c dßng gièng nhau

• Lo¹i 2 : gãi c¸c d·y gièng nhau

Quy c¸ch gãi tin nh− sau: 0x00 Count . Byte 2 cho biÕt sè c¸c d·y gièng nhau ®−îc nÐn trong gãi. §é dµi cña d·y ®−îc ghi ë ®Çu tÖp.

(8)

Quy c¸ch nh− sau: 0x80 Count . Byte thø hai cho biÕt ®é dµi d·y c¸c pixel kh«ng gièng, kh«ng nÐn ®−îc.

• Lo¹i 4: d·y c¸c pixel gièng nhau

Tïy theo c¸c bit cao cña byte ®Çu cã gi¸ trÞ 1 hay 0. NÕu bÝt cao cã gi¸ trÞ 1 th× ®©y lµ gãi nÐn c¸c byte chØ gåm bit 0, sè c¸c byte ®−îc nÐn tÝnh bëi 7 bit cßn l¹i. NÕu bit cao cã gi¸ trÞ lµ 0 th× ®©y lµ gãi nÐn c¸c byte chØ gåm bit 0, sè c¸c byte ®−îc nÐn tÝnh bëi 7 bit cßn l¹i.

2.5.1.2. CÊu tróc File ¶nh BMP

Th«ng tin vÒ ¶nh BMP ®−îc tæ chøc theo khu«n d¹ng sau.

Vïng Header Vïng Infor b¶ng mµu RGB Vïng Data

Vïng Header

Cã ®é lín lu«n lµ 14 bytes, trong ®ã

• 2 bytes ®Çu chØ ®Þnh kiÓu file ¶nh bitmap, lu«n cã gi¸ lµ BM (biÓu diÔn trong hÖ Hexa 0x42D).

• 4 bytes tiÕp theo chØ ®Þnh kÝch th−íc thùc cña file tÝnh theo byte. • 4 bytes cã gi¸ tri 0, kh«ng chøa th«ng tin g×.

• 4 bytes cuèi chØ ®Þnh ®Þa chØ offset vïng d÷ liÖu ¶nh (data) tÝnh tõ ®Çu file. Vïng Infor

Lu«n cã ®é lín lµ 40 bytes, gåm c¸c th«ng tin ®Þnh l−îng vÒ ¶nh, gåm c¸c byte d−íi ®©y:

• 4 bytes chØ ®Þnh ®é lín vïng Infor (th−êng cã gi¸ trÞ lµ 40) • 4 bytes chØ ®Þnh ®é réng cña ¶nh tÝnh theo pixel

• 4 bytes chØ ®Þnh ®é cao cña ¶nh tÝnh theo pixel • 2 bytes chØ ®Þnh sè plane mµu (th−êng cã gi¸ trÞ lµ 1)

• 2 bytes chØ ®Þnh sè bit cÇn thiÕt ®Ó biÒu diÔn mét pixel (sè bit mµu, th−êng cã gi¸ trÞ 1, 2, 4...)

• 4 bytes chØ ®Þnh kiÓu nÐn cña d÷ liÖu ¶nh (th−êng b»ng 0).. Gi¸ trÞ cña 4 bytes nh− sau:

(9)

+ = 1: d÷ liÖu ®−îc nÐn theo chuÈn RLC víi ®é dµi lo¹t lµ 8 (sø dông 8 bit ®Ó m« t¶ gi¸ trÞ ®é dµi lo¹t)

+ = 2: d÷ liÖu ®−îc nÐn theo chuÈn RLC víi ®é dµi lo¹t lµ 4

• 4 bytes chØ ®é lín ¶nh, ®−îc x¸c ®Þnh: nÕu vïng d÷ liÖu kh«ng nÐn, gi¸ trÞ nµy ®−îc tÝnh b»ng ®é lín cña file trõ ®i ®Þa chØ offset vïng Data.

• 4 bytes chØ ®Þnh ®é ph©n gi¶i cña ¶nh theo trôc X • 4 bytes chØ ®Þnh ®é ph©n gi¶i cña ¶nh theo trôc y • 4 bytes chØ ®Þnh sè mµu trong b¶ng ®−îc sö dông

• 4 byte chØ ®Þnh sè mµu cÇn thiÕt ®Ó hiÓn thÞ ¶nh, nÕu cã gi¸ trÞ lµ 0 th× toµn bé mµu trong b¶ng ®−îc sö dông

Vïng mµu RGB

Lu«n gåm 4 byte ®−îc tæ chøc nh− sau: • 1 byte chØ ®Þnh gi¸ trÞ thµnh phÇn Blue • 1 byte chØ ®Þnh gi¸ trÞ thµnh phÇn Red • 1 byte chØ ®Þnh gi¸ trÞ thµnh phÇn Green • 1 byte bá qua

Vïng Data

Ghi toµn bé phÇn cßn l¹i cña ¶nh. Chó ý:

• Sè byte cho 1 dßng ¶nh = ®é lín/ chiÒu cao cña ¶nh

• ViÖc ®äc d÷ liÖu ¶nh ®Ó hiÓn thÞ lªn mµn h×nh ®å häa ®−îc thùc hiÖn theo thø tù: tõ d−íi lªn trªn vµ tõ tr¸i qua ph¶i cho tõng dßng quÐt ¶nh.

2.5.1.2 CÊu tróc File ¶nh PCX

Sö dông ph−¬ng ph¸p m· hãa hµng lo¹t dµi RLE ®Ó nÐn d÷ liÖu ¶nh, qu¸ tr×nh nÐn ®−îc thùc hiÖn trªn tõng dßng ¶nh.

Header D÷ liÖu ¶nh B¶ng mµu më réng

128 byte Header

+ 1 byte: chØ ra kiÓu ®Þnh d¹ng. Lu«n cã gi¸ trÞ 0Ah + 1 byte: chØ ra version sö dông ®Ó nÐn ¶nh.

(10)

2: ver 2.8 víi b¶ng mµu;

3: ver 2.8 hay 3.0 kh«ng cã b¶ng mµu; 5: ver 3.0 cã b¶ng mµu

+ 1 byte: chi ra ph−¬ng ph¸p m· hãa. 0: ph−¬ng ph¸p BYTE PACKED nÕu kh«ng lµ RLE.

+ 1 byte: sè it cho 1 ®iÓm ¶nh + 1 word: täa ®é gãc tr¸i ¶nh. + 1 word: kÝch th−íc bÒ réng vµ cao. + 1 word: sè ®iÓm ¶nh.

+ 1 word: ®é ph©n g¶i mµn h×nh. + 1 word: bá qua

+ 48 byte: chia thµnh 16 nhãm. mâi nhãm chøa th«ng tin vÒ thanh ghi mµu + 1 byte = 0: kh«ng dïng

+ 1 byte: sè bit trong plane mµ ¶nh sö dông. 4: ¶nh 16 mµu; 1: 256 mµu + 1 word: kiÓu b¶ng mµu

+ 58 byte: bá qua D÷ liÖu ¶nh

Chøa th«ng tin ¶nh theo tõng dßng ®· ®−îc m· hãa B¶ng mµu më réng

(11)

2.5.1.4 CÊu tróc File ¶nh GIF 87a

Víi ®Þnh d¹ng GIF nh÷ng v−íng m¾c mµ c¸c ®Þnh d¹ng kh¸c gÆp ph¶i vÒ sè mµu kh«ng cßn. D¹ng ¶nh GIF cho chÊt l−îng cao, ®é ph©n gi¶i ®å häa cao, cho phÐp hiÓn thÞ trªn hÇu hÕt c¸c phÇn cøng ®å häa. GIF tiÕp cËn c¸c thuËt to¸n nÐn LZW.

§Þnh d¹ng tæng qu¸t cña ¶nh GIF nh− sau: • Ch÷ ký cña ¶nh. • Bé m« t¶ hiÓn thÞ. • B¶n ®å mµu tæng thÓ. M« t¶ mét ®èi t−îng cña ¶nh - DÊu ph©n c¸ch - Bé m« t¶ ¶nh - DÊu ph©n c¸ch - B¶n ®å mµu côc bé - D÷ liÖu ¶nh (*) PhÇn m« t¶ nµy lÆp l¹i N lÇn nÕu ¶nh chøa N ®èi t−îng.

GIF header

- Ch÷ ký cña ¶nh bao gåm 6 byte + 3 ký tù ®Çu cã gi¸ trÞ “GIF”

+ 3 ký tù cuèi chØ version cña ¶nh lµ “87a” - Th«ng tin vÒ GIF

+ §é réng h×nh raster theo pixel: 2 byte + §é cao h×nh raster theo pixel: 2 byte

+ C¸c th«ng tin vÒ b¶n ®å mµu, khèi h×nh hiÓn thÞ... + Th«ng tin mµu nÒn: 1 byte

+ Sè l−îng ®iÓm ¶nh: 1 byte

+ B¶ng mµu tæng thÓ nÕu cã – cã kÝch th−íc 256x3 byte B¶n ®å mµu tæng thÓ

M« t¶ bé mµu tèi −u khi ®−îc ®ßi hái, khi bé mµu tæng thÓ ®−îc thÓ hiÖn nã sÏ x¸c lËp ngay bé m« t¶ h×nh hiÓn thÞ. Sè l−îng thùc thÓ b¶n ®å mµu lÊy theo bé m« t¶ hiÓn

GIF NOTE GIF header (Global Palete) Header Image (10 Byte) Palete of image 1 (nÕu cã)

Data of image 1 ‘,’ ký tù liªn kÕt ...

(12)

thÞ ë trªn vµ b»ng 2m

, víi m lµ sè l−îng bit trªn 1 pixel khi mçi thùc thÓ chøa ®ùng 3 byte (biÓu diÔn 3 mµu R, G, B)

Bé m« t¶ ¶nh

§Þnh nghÜa vÞ trÝ thùc tÕ vµ phÇn më réng cña ¶nh trong ph¹m vi kh«ng gian ¶nh ®· cã trong phÇn m« t¶ h×nh hiÓn thÞ. Mçi bé m« t¶ ¶nh ®−îc chØ ra bëi ký tù kÕt nèi ¶nh “0x2c” (dÊu phÈy), kÝ tù nµy chØ dïng khi GIF cã tõ 2 ¶nh trë lªn.

Bé m« t¶ ¶nh bao gåm 10 byte nh− sau: C¸c Bit Thø tù BYTE M« t¶

0010110 1 Ký tù liªn kÕt ¶nh

C¨n tr¸i ¶nh 2, 3 Pixel b¾t ®Çu ¶nh tÝnh tõ tr¸i h×nh hiÓn thÞ

C¨n ®Ønh trªn 4, 5 Pixel cuèi ¶nh b¾t ®Çu tÝnh tõ ®Ønh trªn cña h×nh hiÓn thÞ

§é réng ¶nh 6,7 §é cao ¶nh 8,9

MI000pixel 10 M=0: sö dông b¶ng mÇu tæng thÓ M=1: sö dông b¶ng mµu côc bé I=0: ®Þnh d¹ng ¶nh theo thø tù liªn tôc I=1: ®Þnh d¹ng ¶nh theo thø tù xen kÏ pixel+ 1: sè bit/pixel cña ¶nh

B¶n ®å mµu côc bé

B¶n ®å mµu côc bé chØ ®−îc chän khi M=1, khi b¶n ®å mµu ®−îc chän, b¶n ®å mµu sÏ chiÕu theo bé m« t¶ ¶nh mµ lÊy vµo cho ®óng, t¹i phÇn cuèi ¶nh b¶n ®å mµu sÏ lÊy l¹i phÇn x¸c lËp sau bé m« t¶ ¶nh hiÓn thÞ.

D÷ liÖu ¶nh

Chuçi c¸c gi¸ trÞ cã thø tù cña c¸c pixel mµu t¹o nªn ¶nh. C¸c pixel ®−îc xÕp tõ tr¸i sang ph¶i, c¸c dßng tõ trªn xuèng d−íi.

PhÇn kÕt thóc ¶nh

Cung cÊp tÝnh ®ång bé cho dÊu ®Çu cuèi cña ¶nh GIF. Cuèi ¶nh GIF cã gi¸ trÞ 0x3b (dÊu ;)

2.5.1.5 CÊu tróc File ¶nh GIF 89a

T−¬ng tù nh− GIF 87a nh−ng cã chøa khèi më réng gåm 8 byte. 1 byte ch÷ ký khèi më réng (0x21)

(13)

1 byte Nh·n khèi më réng (0xf9) 1 byte KÝch th−íc khèi (0x04)

1 byte bit 0..2: kh«ng sö dông bit 3..5: thø tù lo¹i bá

bit 6: Cê ng−êi dïng bit 7: cê chØ xem cã sö dông c¶ b¶ng mµu hay kh«ng 2 bytes thêi gian trÔ mçi khèi ¶nh

1 byte c¸c mµu sö dông 1 byte kÕt thóc khèi

2.5.1.6 CÊu tróc File ¶nh GIF Animation

Application Extension Block

1 byte : ch÷ ký khèi øng dông më réng (0x21) 1 byte : nh·n cña khèi (0xff)

1 byte : KÝch th−íc khèi(0x0b) 8 bytes : NhËn d¹ng cña øng dông

[ 1 byte KÝch th−íc khèi th«ng tin (s)bytes Th«ng tin øng dông ] lÆp l¹i N lÇn 1 byte KÕt thóc khèi

GIF NOTE GIF header

Graphic control Extension Block Header Image (10 Byte) Palete of image 1 (nÕu cã)

Data of image 1 ‘,’ ký tù liªn kÕt ... ‘;’ GIF terminator GIF NOTE GIF header

Application Extension Block Graphic control Extension Block

Header Image (10 Byte) Palete of image 1 (nÕu cã)

Data of image 1 ‘;’ GIF terminator LÆp l¹i N

(14)

GIF: Graphics Interchange Format

2.5.1.7 CÊu tróc File ¶nh JPG (Joint Photograph Expert Group)

Jpg ®−îc tæ chøc thµnh c¸c ®o¹n (segments) vµ dïng hÖ thèng ®¸nh dÊu (marker) ®Ó nhËn d¹ng. Mçi marker gåm 2 byte chøa c¸c th«ng tin header, c¸c b¶ng m·, ®iÓm b¾t ®Çu vµ kÕt thóc cña sè liÖu ¶nh. Mçi ®o¹n cã chiÒu dµi tèi ®a lµ 65535 vµ b¾t ®Çu bëi marker nhËn diÖn vµ kÕt thóc bëi 1 marker.

§Þnh dang JPG sö dông ®Þnh d¹ng kiÓu Motorola cho tõ, nghÜa lµ byte cao tr−íc, byte thÊp sau (FFA0 ghi trong file th× FF lµ phÇn thÊp offset, A0 lµ phÇn cao).

HÖ thèng v¹ch dÊu vµ c¸ch tæ chøc th«ng tin trong JPG

Mét Marker gåm 2 byte b¾t ®Çu b»ng 0xFF vµ kÕt thóc b»ng bye n»m trong kho¶ng 0 -> 0xFF. Byte thø hai chØ râ ý nghÜa cña v¹ch dÊu.

C¸c v¹ch dÊu quan träng:

• SOI (start of image = “FFD8”): b¾t ®Çu ¶nh, v¹ch nµy b¾t buéc cã ë ®Çu ¶nh. • EOI (end of image =”FFD9”): kÕt thóc ¶nh.

• SOSF0 (Start of Frame 0 = FFC0): b¾t ®Çu khung ¶nh 0. • SOS (Start of Scan = “FFDA”): b¾t ®Çu kiÓm tra quÐt ¶nh

• RSTi (restart Markers = FFDi; i = 1..7) V¹ch khëi ®Çu l¹i. V¹ch nµy xu¸t hiÖn trong dßng byte ë nh÷ng vÞ trÝ c¸ch ®Òu nhau trong qu¸ tr×nh gi¶i m· sau SOS. Mét sè JPG kh«ng cã v¹ch nµy.

• APP0: v¹ch dÊu dïng nhËn biÕt tÖp JPG khi nhËn ®Æc t¶ JFIF=”FFE0”. • COM (Comment = “FFEE”): chó gi¶i.

• DNL (Define Number of Line = FFDC): x¸c ®Þnh sè dßng.

• DRI (Define Restart of Interval = FFDD): ®Þnh nghÜa kho¶ng c¸ch b¾t ®Çu l¹i. • DQT (Define Quantization Table = FFDB): ®Þnh nghÜ b¶ng l−îng tö hãa. • DHT (Define Huffman Table = FFC4): ®Þnh nghÜa b¶ng Hufman.

Néi dung c¸c b¶ng nh− sau:

- 16 bytes: byte i chøa sè m· Huffman víi chiÒu dµi i tÝnh theo bits, i=1..16. - ChiÒu dµi b¶ng = tæng chiÕu dµi c¸c tõ m·.

§Þnh d¹ng JPG/ JFIF (Jpeg Format Interchange File)

ChuÈn JPG chØ ®Þnh mét sè v¹ch dµnh riªng cho c¸c øng dông. C¸ch v¹ch nµy gäi lµ APPn (n= 0..0xF): APPn = FFEn. §Æc t¶ JFIF sö dông v¹ch dÊu AAP0 ®Ó nhËn dang.

(15)

a. CÊu tróc tÖp JPG

- Header (2 bytes): FFD8 – v¹ch dÊu SOI - D·y c¸c segments ¶nh.

- KÕt thóc ¶nh (2 bytes): FFD9 – v¹ch dÊu EOI. b. CÊu tróc segment

Gåm hai phÇn:

- Header (4 bytes): FF, n, sh, sl FF: nhËn d¹ng ®o¹n

n: kiÓu ®o¹n – 1 byte. sh, sl: kÝch th−íc ®o¹n. - Néi dung: tèi ®a 65533 bytes.

c. KiÓu ®o¹n: ë ®©y ta ®−a ra c¸c kiÓu ®o¹n dïng trong JPG.

- TEM = $01 th−êng lµ nguyªn nh©n lçi (kh«ng cã ®Æc t¶ vÒ kÝch th−íc, néi dung) - SOF0, SOF1: b¾t dÇu khung.

- SOF2..SOF7; SOF10..SOF15: kh«ng sö dông. - SOF9: m· hãa sè häc, thõong kh«ng dïng.

- DHT: b¶ng m· huffman. Cã hai lo¹i b¶ng DC vµ AC. - JPG= $c8: nguyªn nh©n lçi m·.

- DAC=$cc; b¸ng sè häc, th−êng kh«ng dïng.

- RST0..RST7: cã thÓ lê ®i, kh«ng cã ®¨c t¶ vÒ kÝch th−íc, néi dung. - SOI= $D8: b¾t ®Çu ¶nh.

- EOI= $D9: kÕt thóc ¶nh. - SOS= $DA: b¾t ®Çu quÐt ¶nh. - DQT= $D8: b¶ng l−îng tö hãa. - DRL =$DC: cã thÓ bá qua. - DRI = $DD: kho¶ng b¾t ®Çu l¹i. - DHP=$DE: EXP=$DF: bá qua. - APP0= $E0: v¹ch dÊu cho ¶nh JFIF - APP15=$EF: bá qua

- JPG0=$F0, JPG13=$FD: bá qua. - COM=$FE: chó gi¶i

(16)

KiÓu ®o¹n SOF0 = FFC0

- 2 bytes: nhËn d¹ng ®o¹n ($FF) vµ kiÓu ®äan ($C0). - ChiÒu dµi (byte cao, byte thÊp)

- §é chÝnh x¸c d÷ liÖu (1 byte): sè bits/ pixel th−êng lµ 8. - ®é cao cña ¶nh (2 bytes), cã gi¸ trÞ >0 nÕu DNL kh«ng hç trî. - ®é réng cña ¶nh (2 bytes), cã gi¸ trÞ >0 nÕu DNL kh«ng hç trî. - sè thµnh phÇn (1 byte)

1: ¶nh ®a cÊp x¸m. 3: ¶nh mµu YCbCr/ YIQ 4: ¶nh mµu CMYK - Mçi thµnh phÇn gåm 3 bytes

+ sè hiÖu thµnh phÇn ( 1= Y, 2= Cb, 3=Cr, 4=I, 5=Q). + yÕu tè lÊy mÉu (bit 0-3: chiÒu ®øng, bit 4-7: chiÒu ngang) + sè b¶ng l−îng tö.

KiÓu ®o¹n APP0: v¹ch dÊu ®o¹n dïng ®¾c t¶ JFIF - 2 bytes: nhËn d¹ng ®o¹n ($FF) vµ kiÓu ®äan ($E0). - ChiÒu dµi > 16.

-JFIF#0 ($4a, $46, $49, $00): nhËn d¹ng JFIF - sè tham chiÕu chÝnh =1

- sè tham chiÕu phô = 0..2 (nÕu kh¸c th× ¸p dông c¸ch gi¶i m· kh¸c). - ®¬n vÞ mËt ®é x/y

+ 0: kh«ng cã mËt ®é. + 1: dots/inch – sè chÊm ®iÓm / 1 inch. + 2: dots/cm.

- mËt ®é x (2 byte) - mËt ®é y (2 byte)

- chiÒu réng viÕt ng¾n gän (1 byte) - chiÒu dµi viÕt ng¾n gän (1 byte)

- b bytes ®Ó viÕt ng¾n gän (RGB 24 bits) n= réng*cao*3. KiÓu ®o¹n DRI: x¸c ®Þnh kho¶ng b¾t ®Çu l¹i.

- 2 bytes: nhËn d¹ng ®o¹n ($FF) vµ kiÓu ®äan ($DD). - chiÒu dµi (byte thÊp, byte cao) = 4

- kho¶ng b¾t ®Çu l¹i (byte cao, byte thÊp) trong ®¬n vÞ khèi MCUs cã nghÜa lµ mçi n khèi MCU th× cã RSTn v¹ch dÊu cã thÓ t×m thÊy,

(17)

KiÓu ®o¹n DQT: X¸c ®Þnh b¶ng l−îng tö

- 2 bytes: nhËn d¹ng ®o¹n ($FF) vµ kiÓu ®äan ($DB). - chiÒu dµi (byte thÊp, byte cao)

- Th«ng tin l−îng tö (1 byte)

+ bit 0..3: sè b¶ng l−îng tö QT (0..3).

+ bit 4..7: ®é chÝnh x¸c cña b¶ng l−îng tö ( = 0: 8 bit; # 16 bit) - n byte QT, n= 64* (®é chÝnh x¸c +1)

KiÓu ®o¹n DHT

- 2 bytes: nhËn d¹ng ®o¹n ($FF) vµ kiÓu ®äan ($DB). - chiÒu dµi (byte thÊp, byte cao)

- Th«ng tin b¶ng HT (1 byte)

+bit 0..3: sè b¶ng l−îng tö QT (0..3) + bit4 =0: b¶ng DC; =1 b¶ng AC + 5..7 = 0.

- 16 byte: sè ký hiÖu dïng ®Ó m· víi chiÒu dµi tõ 1..16. - n byte: b¶ng chøa ký hiÖu theo thø tù t¨ng chiÒu dµi m·. KiÓu ®o¹n COM

- 2 bytes: nhËn d¹ng ®o¹n ($FF) vµ kiÓu ®äan ($FE). - chiÒu dµi (byte thÊp, byte cao)

- Néi dung: chuçi c¸c bytes. KiÓu ®o¹n SOS: b¾t ®Çu quÐt

- 2 bytes: nhËn d¹ng ®o¹n ($FF) vµ kiÓu ®äan ($DA).

- chiÒu dµi (byte thÊp, byte cao): 6 * (sè thµnh phÇn trong kiÓm tra) - Sè thµnh phÇn trong kiÓm tra(1 byte) = 1..4.

- Mçi thµnh phÇn(2bytes). - Thµnh phÇn:

+ sè hiÖu thµnh phÇn ( 1= Y, 2= Cb, 3=Cr, 4=I, 5=Q). + yÕu tè lÊy mÉu (bit 0-3: chiÒu ®øng, bit 4-7: chiÒu ngang) + sè b¶ng l−îng tö.

- B¶ng Huffman sö dông:

+ bit 0..3: AC + bit 4..6: DC - 3 byte tiÕp: bá qua.

(18)

PhÇn thø hai: xö lý ¶nh sè

Ch−¬ng III. Xö lý ¶nh nhÞ ph©n

3.1. ¶nh nhÞ ph©n

- K/n: ¶nh nhÞ ph©n lµ ¶nh mµ gi¸ trÞ c¸c pixel lµ 0 hoÆc 1. - Ta gäi J lµ tËp c¸c ®iÓm ¶nh ( ®iÓm cã møc x¸m lµ 1). JT

lµ tËp c¸c ®iÓm nÒn (®iÓm cã møc x¸m lµ 0). 3.1.1. Khu«n ¶nh nhÞ ph©n kh«ng gãi

Cã thÓ xem xÐt ¶nh nhÞ ph©n nh− nh÷ng ¶nh x¸m, trong ®ã sö dông gi¸ trÞ T mµ c¸c gi¸ trÞ duíi T coi lµ 0, trªn T coi lµ 1. C¸ch m« t¶ nh− vËy gäi lµ ¶nh nhÞ ph©n kh«ng gãi.

Th«ng th−êng ta sö dông ¶nh x¸m 8 bit cho mçi ®iÓm ¶nh. Víi khu«n ¶nh nµy ®ßi hái kÝch th−íc bé nhí lín nh−ng truy cËp lªn c¸c ®iÓm ¶nh nhanh chãng vµ ®¬n gi¶n.

3.1.2. Khu«n mÆt b»ng bit

Trong khu«n mÉu nµy nhiÒu ¶nh nhÞ ph©n ®−îc l−u trong mét ¶nh x¸m. C¸c mÆt b»ng bit lµ c¸c ¶nh nhÞ ph©n ®−îc lÊy ra tõ mét ¶nh x¸m.Tøc lµ: tËp hîp c¸c bit thø i cña c¸c byte trong ¶nh x¸m lµ ¶nh nhÞ ph©n thø i.

Khu«n ¶nh d¹ng nµy sö dông cã hiÖu qu¶ bé nhí xong mÊt nhiÒu thêi gian truy nhËp lªn mét bit.

3.1.3. Khu«n ¶nh nhÞ ph©n gãi

¶nh nhÞ ph©n cã thÓ s¾p xÕp ®−îc d−íi d¹ng bÞ gãi nh− lµ khu«n mÉu ¶nh riªng vµ ®−îc l−u tr÷ trong mét m¶ng nguyªn. Nhê vËy trong mçi tõ nguyªn 32 bit sÏ cã 32 ®iÓm ¶nh nhi ph©n. ViÖc truy nhËp lªn mét ®iÓm ¶nh nhÞ ph©n gãi t−¬ng ®èi mÊt thêi gian. 3.1.4. ChuyÓn ®æi tõ ¶nh x¸m sang ¶nh nhÞ ph©n

Kü thuËt ph©n ng−ìng: dïng ®Ó hiÓn thÞ ¶nh víi t«ng mÇu liªn tôc. - T2

: Víi mét ng−ìng λ cho tr−íc, møc x¸m cña pixel trong ¶nh lín h¬n th× chuyÓn vÒ gi¸ trÞ lµ 1, nhá h¬n th× vÒ 0.

- Ph−¬ng ph¸p nµy lµm cho tÝnh chÊt mµu liªn tôc cña ¶nh bÞ gi¸n ®o¹n nh−ng cã hiÖu qu¶ trong viÖc thÓ hiÖn c¸c lo¹i ¶nh cã ®−êng nÐt nh− v¨n b¶n, v©n tay...

Kü thuËt Dithering: ®−îc ¸p dông ®Ó t¹o ra ¶nh ®a cÊp x¸m khi ®é ph©n gi¶i cña ¶nh nguån vµ ¶nh ®Ých lµ nh− nhau.

- P2

nµy ®¶m b¶o kÕt qu¶ cña ¶nh ®ång thêi thÓ hiÖn ®−îc c¸c bé phËn cã tÇn sè cao. - T2: + Sö dùng mét ma trËn Dithering ®Ó chuyÓn ®æi ¶nh.

(19)

+ Mçi møc x¸m cña mét pixel trong ¶nh gèc ®−îc so s¸nh víi pixel t−¬ng øng trªn Dithering, nÕu lín h¬n th× chuyÓn sang 1, ng−îc l¹i lµ 0.

3.2. PhÐp to¸n h×nh th¸i trªn ¶nh nhÞ ph©n 3.2.1. PhÐp to¸n h×nh th¸i – Morphology

Lµ thuËt ng÷ chØ cÊu tróc cña ®èi t−îng, nã diÔn t¶ ph¹m vi, mèi quan hÖ gi÷a c¸c phÇn cña ®èi t−îng. Mét ®èi t−îng ¶nh trong h×nh th¸i häc cã thÓ biÓu diÔn thµnh mét tËp hîp c¸c ®iÓm ¶nh theo cÊu tróc hai chiÒu.

PhÐp co vµ phÐp gi·n ¶nh lµ hai thao t¸c to¸n häc cô thÓ trªn tËp ®iÓm ¶nh ®Ó lµm næi bËt c¸c ®Æc tr−ng vÒ h×nh d¹ng ®èi t−îng.

3.2.2. BiÓu diÔn d÷ liÖu ¶nh trªn tËp hîp

Víi ¶nh nhÞ ph©n Im*n, pixel t¹i (x, y) ®−îc x¸c ®Þnh = 0 nÕu lµ ®iÓm tr¾ng, =1 lµ ®iÓm

®en.

Trong kh«ng gian 2 chiÒu Im*n cã thÓ biÓu diÔn thµnh tËp c¸c t¹o ®é mµ gi¸ trÞ pixel t¹i

®ã lµ 1.

VD: I 3x3 ®−îc biÓu diÔn nh− sau

1 0 1 A = { (0, 0); (1, 2); (1,1); (2.0); (2,1)} 0 1 0

1 1 0

Mét sè phÐp to¸n trªn tËp hîp

+ PhÐp dÞch A theo ®iÓm P (x, y): AP = { c/ c = a+P; a € A}

+ PhÇn bï cña A: AC

= { c/ a kh«ng € A}

+ Giao cña hai tËp hîp: A ∩ B = {c / c ε A và c ε B } + HiÖu hai tËp hîp: A - B = {c / c ε A hoặc c ε B } C¸c t¸c ®éng c¬ b¶n ®Ó xö lý ¶nh nhÞ ph©n.

+ BNOT(B,C): C= Not B + BAND(A, B, C): C = A And B + BOR(A,B,C): C= A Or B

+ BSHIFT(A,C,i): C = A dÞch theo chiÒu i.

i 0 1 2 3 4 5 6 7 M« t¶ ph¶i ph¶i trªn trªn tr¸i trªn tr¸i tr¸i d−íi d−íi ph¶i d−íi

(20)

+ BERASE(B): Xãa c¸c ®iÓm ¶nh cña B + BEXOR(A, B, C): C = A Xor B + BSUM(B): Tæng sè ®iÓm ¶nh. 3.2.3. PhÐp gi·n ¶nh nhÞ ph©n

PhÐp gi·n tËp A bëi tËp T ®−îc ®Þnh nghÜa nh− sau: A T = { c / c = a + t; t ε T} Nh− vËy phÐp d·n ¶nh nhÞ ph©n IM*N theo phÇn tö cÊu tróc T ®−îc x¸c ®Þnh nh− trªn

sÏ lµm t¨ng sè ®iÓm ¶nh cña I. VD sau sÏ chØ râ:

0 0 1 1 0 A = { (0, 2; (0 3; (1,0); (1,3); (2,1)} 1 0 0 1 0 T= { (0,0); (0,1)}

0 1 0 0 0

Khi ®ã tËp A sÏ ®−îc gi·n theo T nh− sau:

A T C Nh− vËy ¶nh tËp A sau khi gi·n thµnh tËp

C = {(0,2); (0,3);(1,3);(2,1);(1,0); (0,4);(1,4);(2,2);(1,1)} ¶nh A sÏ lµ: 0 0 1 1 1 1 1 0 1 1 0 1 1 0 0 0,2 0,0 0,2 0,3 0,0 0,3 1,3 0,0 1,3 2,1 0,0 2,1 1,0 0,0 1,0 0,2 0,1 0,3 0,3 0,1 0,4 1,3 0,1 1,4 2,1 0,1 2,2 1,0 0,1 1,1 3.2.4. PhÐp gi·n ¶nh Minkowshi C¸c b−íc thùc hiÖn:

+ Bc1: BiÓu diÔn phÇn tö cÈu tróc T thµnh ma trËn c¸c ®iÓm ¶nh 0, 1. + Bc2: Chän ®iÓm cã gi¸ trÞ 1 bÊt kú trong T lµm phÇn tö gèc.

+ Bc3: DÞch chuyÓn phÇn tö gèc cña T ®Õn tÊt c¶ c¸c ®iÓm ¶nh (møc x¸m 1) trªn ¶nh gèc theo thø tù tõ trªn xuèng d−íi, tõ tr¸i qua ph¶i. Trong mçi lµn dÞch chuyÓn gi¸ trÞ pixel trong ®−îc x¸c ®Þnh nh− sau:

• Víi pixel trªn ¶nh gèc øng víi ®iÓm 1 trong T, pixel ¶nh kÕt qu¶ ®−îc g¸n møc x¸m 1.

(21)

• Thªm pixel cho ¶nh kÕt qu¶ cã gi¸ trÞ 0 hoÆc 1 vµo vÞ trÝ øng víi ®iÓm 0 hoÆc 1 trong mÉu T nÕu ¶nh gèc kh«ng cã pixel øng víi c¸c ®iÓm nµy.

VD: Cho ¶nh nhÞ ph©n I3x4 vµ mÉu T = {(0,0); (1,0); (1,1)}

0 1 0 1 1 0

1 0 1 1 1 1

0 1 0 1 T

¶nh I3x4

Chän (1,0) lµm gèc ®Ó gi·n ¶nh I theo mÉu T. Ta cã kÕt qu¶ nh− sau:

1 0 1 0 1 0 1 0 1 0 1 0 1 0

0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1

1 0 1 1 1 0 1 1 1 1 1 1 1 1 1 1

0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

§Æt T vµo (0,1) §Æt T vµo (0,3) §Æt T vµo (1,0) §Æt T vµo (1,2)

1 0 1 0 1 0 1 0 1 0 1 0

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ¶nh kÕt

qu¶ 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

0 1 0 1 0 1 1 1 0 1 1 1 1 §Æt vµo (1,3) §Æt vµo (2,1) §Æt vµo (2,2)

PhÐp gi·n ¶nh lµm t¨ng sè ®iÓm ¶nh vµ kÝch th−íc cña ¶nh kÕt qu¶ so víi ¶nh gèc. Víi mÉu T cã kÝch th−íc MxN th× kÝch th−íc ¶nh kÕt qu¶ t¨ng (m-1) vµ (n-1) mçi chiÒu.

3.2.5. PhÐp co ¶nh nhÞ ph©n

PhÐp co (Erosion) ¶nh nhÞ ph©n A bëi mÉu T ®−îc ®Þnh nghÜa nh− sau: A T = {c/ } c / c = a - t; t ε T }

PhÐp co ¶nh sÏ lµm sè ®iÓm ¶nh gi¶m ®i vµ kÝch th−íc cã thÓ gi¶m. 3.2.6. PhÐp co ¶nh Minkowshi

§−îc thùc hiÖn nh− sau: DÞch chuyÓn mÉu T trªn ¶nh gèc theo thø tù tõ trªn xuèng d−íi, tõ tr¸i qua ph¶i sao cho mÉu T n»m trän vÑn trong ¶nh gèc. Mçi pixel cña ¶nh kÕt qu¶ ®−îc x¸c ®Þnh nh− sau:

(22)

• Cã møc x¸m 1 nÕu c¸c vÞ trÝ 1 t¹i ¶nh gèc vµ mÉu T trïng nhau.Ng−îc l¹i lµ 0. VD: Cho ¶nh nhÞ ph©n I3x4 vµ mÉu T= {(0,0); (1,0); (1,1)} 0 1 0 1 1 0 1 1 1 0 ¶nh I3x4 1 1 1 0 1 1 T PhÐp co ¶nh ®−îc thùc hiÖn nh− sau: 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 1 1 1 0 1 1 1 0 1 1 1 0 0 1 1 0 0 0 1 0 1 0 1 1 1 0 1 1 1 0 1 1 1 1 1 1 §Æt T ®Õn (0,0) §Æt T ®Õn (0,1) §Æt T ®Õn (0,2) §Æt T ®Õn (1,0) §Æt T ®Õn (1,1) 0 1 0 1 0 1 ¶nh kÕt qu¶ §Æt T ®Õn (1,2)

PhÐp co ¶nh lµm gi¶m sè ®iÓm ¶nh vµ kÝch th−íc cña ¶nh kÕt qu¶ so víi ¶nh gèc. Víi mÉu T cã kÝch th−íc MxN th× kÝch th−íc ¶nh kÕt qu¶ gi¶m (m-1) vµ (n-1). 3.2.7. C¸c tÝnh chÊt cña phÐp co, gi·n ¶nh

a. TÝnh chÊt ph©n bè A (T1 Ü T2) = ( A T1 ) Ü ( A T2 ) A (T1 Ü T2) = ( A T1 ) Ü ( A T2 ) b. TÝnh ph©n bè víi phÐp ∩ (A ∩ T1) T2 = (A T1) ∩ ( A T2) c. TÝnh bÊt biÕn ((A T) T) = A T ((A T) T) = A T d. TÝnh kÕt hîp (A T1) T2 = A (T1 T2) (A T1) T2 = A (T1 T2) e. TÝnh gia t¨ng NÕu T1 ε T2 A T1 ε A T2 A T1 ε A T2

(23)

3.2.8. D·n vµ co ¶nh ®èi víi c¸c tr−êng hîp gi¸n ®o¹n

C¸c ®iÓm c¬ b¶n ®−îc coi nh− mét ®iÓm ¶nh, tõ 1 ®iÓm ¶nh d·n ra theo c¸c h×nh c¬ b¶n,

+ + +

+ + + +

+ + +

H×nh thoi c¬ b¶n H×nh vu«ng c¬ b¶n 1 H×nh vu«ng c¬ b¶n 2

D·n 1 ®iÓm thµnh h×nh vu«ng c¬ b¶n 2 Sub BDIL0(A, H, C) Call BShift(A, H, 4) Call BOr(A, H, H) Call BShift(H, C, 6) Call BOr(H, C, C) End + . + + + + + ¶nh gèc Di chuyÓn A sang tr¸i -> B Di chuyÓn B xuèng d−íi vµ liªn hiÖp víi

A -> C

TËp hîp liªn hiÖp B vµ C

Trong ®ã: ®iÓm gèc vµ ®iÓm ¶nh. ®iÓm gèc. + ®iÓm ¶nh. Co h×nh vu«ng c¬ b¶n thµnh 1 ®iÓm Sub BERO0(A, H, C) Call BShift(A, H, 2) Call BOr(A, H, H) Call BShift(H, C, 0) Call BOr(H, C, C) End

(24)

a

D·n 1 ®iÓm thµnh h×nh thoi c¬ b¶n Sub BDIL1(A, H, C)

Call BShift(A, H, 1) Call BOr(A, H, H) Call BShift(H, C, 3) Call BOr(H, C, C) Call BShift(C, C, 6) Call BOr(A, C, C) End

Co h×nh thoi c¬ b¶n thµnh 1 ®iÓm Sub BER01(A, H, C)

Call BShift(A, H, 1) Call BOr(A, H, H) Call BShift(H, C, 3) Call BOr(H, C, C) Call BShift(C, C, 6) Call BOr(A, C, C) End

3.2.9. D·n ¶nh vµ co ¶nh mét c¸ch tèi −u trªn l−íi

L−íi h×nh vu«ng ®−îc ph©n chia lµm hai lo¹i vïng l©n cËn: l©n cËn theo nghÜa hÑp víi kho¶ng c¸ch lµ a; l©n cËn theo nghÜa réng víi kho¶ng c¸ch lµ a.sqrt(2) øng víi d·n ¶nh theo h×nh vu«ng vµ h×nh thoi c¬ b¶n. Khi d·n ¶nh víi h×nh vu«ng c¬ b¶n n lÇn sÏ ®−îc h×nh vu«ng c¹nh lµ n.a, víi h×nh thoi lµ n.a.sqrt(2).

Do ®ã khi d·n ¶nh víi c¸c thao t¸c co, d·n theo h×nh vu«ng, thoi c¬ b¶n sÏ thu ®−îc ¶nh kh¸c nhau. Tr×nh tù gäi c¸c thao t¸c kh«ng ¶nh h−ëng ®Õn kÕt qu¶ mµ sè l−îng lÇn gäi míi ¶nh h−ëng ®Õn kÕt qu¶.

VÝ dô ®Ó cã h×nh b¸t gi¸c ngo¹i tiÕp ®−êng trßn cã b¸n kÝnh R th×: BDIL b¸t gi¸c = a. BDIL thoi + b. BDIL vu«ng

BERO b¸t gi¸c = a. BERO thoi + b. BERO vu«ng

B R = a + b/2 b = a.sqrt(2) R a = 2R/(2 + sqrt(2)) = 0.59 R b = 2.sqrt(2).R/(2+ sqrt(2)) = 0.83R b: c¹nh ngang, a c¹nh chÐo. 3.3. PhÐp ®ãng më ¶nh Ký hiÖu c¸c phÐp to¸n:

+ Gi·n ¶nh A: D(A) + Co ¶nh A: E(A) + Më ¶nh: Open(A) + §ãng ¶nh: Close(A)

(25)

Khi ®ã:

+ PhÐp më ¶nh A theo mÉu T ®−îc ®Þnh nghÜa nh− sau: Open(A) = D(E(A)). PhÐp më ¶nh sÏ më réng nh÷ng kho¶ng trèng nhá gi÷a c¸c phÇn tiÕp xóc trong ®èi t−îng ¶nh, lµm cho ¶nh bít gai h¬n.

+ PhÐp ®ãng ¶nh A theo mÉu T ®−îc ®Þnh nghÜa nh− sau: Close(A) = E(D(A)). PhÐp ®ãng ¶nh sÏ lÊp ®Çy nh÷ng kho¶ng trèng ¶nh, lµm mÊt nh÷ng tÝn hiÖu g©y trong nhiÔu.

VD1: Cho ¶nh nhÞ ph©n I4x5 vµ mÉu T. Thùc hiÖn phÐp Open(A)

1 1 0 1 1 1 0

1 0 1 0 1 ¶nh I4x5 1 1

1 0 1 0 1 T

1 1 1 1 1

Gi·n ¶nh I theo Minkowski ta ®−îc I1 : Co ¶nh I1 ta ®−îc Open(A) 1 1 0 1 0

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

VD2: Cho ¶nh nhÞ ph©n I4x5 vµ mÉu T. Thùc hiÖn phÐp Close(A)

1 1 0 1 1 1 0

0 1 1 1 0 ¶nh I4x5 1 1

1 1 0 1 1 T

0 1 1 1 0

Co ¶nh I theo Minkowski ta ®−îc I1 : Gi·n ¶nh I1 ta ®−îc Close(A) 0 1 0 0 0 0 1 1 1 0 0 1 0 1 1 0 1 1 0 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 0 0 0 1 1 1 0 0 1 0 1 1 0 1 1 0 0

(26)

(a) (b) (c)

a) Ảnh A b) Giãn ảnh với 2B c) Co ảnh với 2B

d) Mở ảnh với 2B e) Đóng ảnh với 2B f) Hit-and-Miss với B1 và B2

3.3.1. Xö lý tõng ®èi t−îng trªn ¶nh nhÞ ph©n

Trong c¸c c¸ch xö lý ë trªn c¸c ®èi t−îng ¶nh ®−îc xö lý song song theo cïng mét c¸ch do ®ã kh«ng thÓ xö lý t¸ch riªng c¸c ®èi t−îng. §Ó t¸ch riªng c¸c ®èi t−îng ng−êi ta dïng thuËt to¸n GrassFire - “®èt ch¸y b·i cá”. ThuËt to¸n GrassFire m« t¶ nh− sau: tõ mét ®iÓm mçi hay ®iÓm ®¸nh dÊu cho tr−íc, tõng ®iÓm cña ®èi t−îng sÏ ®−îc thu nhËn qua qu¸ tr×nh ®èt ch¸y. ThuËt to¸n ®−îc dõng khi kh«ng cßn ®iÓm nµo ®−îc ®èt ch¸y.

VÒ mÆt kü thuËt qu¸ tr×nh ®èt ch¸y ¶nh ®−îc lµm d·n ra b»ng c¸c ®iÓm ®¸nh dÊu khi sö dông c¸c h×nh thoi c¬ b¶n. TiÕp ®ã mét phÐp AND ®−îc thùc hiÖn gi÷a ¶nh gèc vµ ¶nh thu ®−îc ®Ó lo¹i bá c¸c ®iÓm vuît ra ngoµi mÐp cña ®èi t−îng.

ThuËt to¸n ®−îc m« t¶ nh− sau:

Sub GrassFire // B: ¶nh gèc, M: ¶nh ®¸nh dÊu chøa c¸c ®èi t−îng ®· ®¸nh dÊu. KÕt thóc khi kh«ng cßn ®èi t−îng nµo ®¸nh dÊu.

(27)

i=0 Loop: j = BSUM(M) BDIL(M,M) BAND(B,M,M) i =BSUM(M) If i <> j goto Loop End

Sau khi ®· cã ®èi t−îng ¶nh ta cã thÓ thùc hiÖn c¸c phÐp biÕn ®æi h÷u Ých nh−: + CÊu tróc l¹i mét sè ®èi t−îng sau khi co ¶nh.

+ LÊp ®Çy c¸c vïng trèng trong ®èi t−îng. Muèn thÕ ta ph¶i t¹o mét ¶nh ®¸nh dÊu tõ ¶nh lèi ra ®−îc ®¶o vµ l¶nh sÏ µm co ¶nh liªn tôc cho tíi khi hÕt kho¶ng trèng, sau ®ã ¶nh sÏ ®−îc cÊu tróc vµ kh«ng cã vïng trèng.

+ §Ó xãa c¸c ®èi t−îng ë mÐp, ta ¸p dông grassfire víi c¸c ®iÓm ë mÐp. Tõ vi sai gi÷a ¶nh gèc vµ c¸c ®èi t−îng ¶nh ë mÐp ta thu ®−îc ¶nh kh«ng cã ®èi t−îng ë mÐp.

+ Cã thÓ sö dông Grassfire ®Ó ®Õm c¸c ®èi t−îng sau khi xãa mét ®èi t−îng theo mét ®èi t−îng kh¸c b»ng viÖc ®èt ch¸y.

+ L−u tr÷ ¶nh theo c¸c ®èi t−îng vµ x¸c ®Þnh th«ng sè cña c¸c ®èi t−îng. 3.3.2. Lµm co ¶nh lÇn chãt

PhÐp co ¶nh t¸c ®éng lªn tÊt c¶ c¸c ®èi t−îng ¶nh theo c¸ch nh− nhau do ®ã c¸c ®èi t−îng nhá sÏ biÕn mÊt nhanh h¬n lµ c¸c ®èi t−îng lín. ë c¸c ®èi t−îng mÐp sÏ bÞ v¹t ®i t−¬ng øng víi cì cña phÇn tö ¶nh. §iÒu nµy kh«ng thÝch hîp víi mét sè øng dông do ®ã cÇn cã c¸ch kh¸c, ®ã lµ “ultimate erosion” tøc lµ kh«ng ®Ó c¸c ®èi t−îng biÕn mÊt hoµn toµn mµ chØ mÊt mét phÇn.

C¸c b−íc ®−îc tiÕn hµnh nh− sau:

- Tr−íc mçi lÇn co ®Òu kiÓm tra mét ®èi t−îng d· bÞ biÕn mÊt bëi viÖc “lµm co lÇn chãt” tr−íc ®Êy kh«ng. §Ó thùc hiÖn ta lµn mét phÐp co thö.

- TÊt c¶ c¸c ®èi t−îng bÞ kh«ng mÊt khi thö co ¶nh ®−îc cÊu tróc l¹i b»ng GrassFire. - §Ó t×m kiÕm c¸c ®èi t−îng ®· mÊt, ¶nh lèi ra ®· ®−îc cÊu tróc vµ ¶nh ®−îc tÝnh to¸n.

- TÝch lòy c¸c ®èi t−îng ¶nh ®· mÊt trong mét bé nhớ ¶nh thÝch hîp. - Thùc hiÖn phÐp co ¶nh ®Ých thùc vµ ¶nh ®Çu ra sÏ lÆp l¹i qu¸ tr×nh trªn. VD: lµm co ¶nh cho ®Õn khi ®èi t−îng bÞ biÕn mÊt hoµn toµn.

(28)

SUB Ultimate(H, B, C) // H: ¶nh phô trî, C: ¶nh kÕt qu¶, B: ¶nh gèc BErase(C)

Loop:

BERO(B, H) // Co ¶nh theo h×nh thoi c¬ b¶n GrassFire(B, H)

BEXOR(B, H, H) // xem xÐt sù kh¸c nhau B vµ H BOR(H, C, C) // ®èi t−îng bÞ mÊt ®−îc tÝch lòy vµo C BERO(B, B) // co ¶nh thùc sù

i= BSUM(B) if i > 0 goto Loop end

(29)

3.4. Biên ảnh nhị phân 3.4.1. Tập điểm láng giềng

- Cho trước điểm ảnh P(x,y) thì (x-1,y) (x+1,y) (x, y-1) (x, y+1) gọi là các 4 láng giềng của P.

- Điểm ảnh P(x,y) thì các 4 láng giềng của P và (x-1,y-1) (x-1,y+1) (x+1, y-1) (x+1, y+1) là các 8 láng giềng của P.

- Hai điểm ảnh P và Q thuộc ảnh A được gọi là 4 (8) liên thông trong A nếu tồn tại các cặp điểm {(x0, y0)…(xn, yn)} được gọi là đường đi sao cho:

+ P=(x0,y0); Q=(xn, yn)

+ mọi (xk, yk) và (xk+1, yk+1) thì (xk, yk) là 4(8) láng giềng của (xk+1, yk+1) k=0..n-1 3.4.2. Chu tuyến của một đối tượng ảnh

- Đối tượng ảnh là một tập hợp các điểm ảnh liên thông.

- Điểm biên: P là điểm nếu nó tồn tại ít nhất 1 điểm 4 láng giềng có mức xám khác P. - Chu tuyến của một đối tượng ảnh là tập các điểm biên P1, P2..Pn của đối tượng ảnh đó sao cho hai điểm Pi và Pi+1 là các 8 láng giềng của nhau và P1 là 8 láng giềng của Pn. Ký hiệu chu tuyền là C=<P1..Pn>

- Chu tuyến đối ngẫu: hai chu tuyến C=<P1..Pn> và CT=<Q1..Qn> gọi là đối ngẫu của nhau nếu là chỉ nếu mọi i=1..n đều tồn tại duy nhất j =1..m sao cho.

+ Pi và Qj là các 4 láng giềng của nhau. + Mức xám của Pi và Qj là khác nhau

- Chu tuyến ngoài: Chu tuyến C được gọi là chu tuyến ngoài nếu độ dài (số các điểm biên) của C nhỏ hơn độ dài chu tuyến đối ngẫu.

- Chu tuyến trong: Chu tuyến C được gọi là chu tuyến trong nếu độ dài (số các điểm biên) của C lớn hơn độ dài chu tuyến đối ngẫu.

- In(Q, C): điểm Q nằm trong chu tuyến C - Out(Q, C): điểm Q nằm ngoài chu tuyến C

Bổ đề 1: Gọi C=<P1..Pn> là chu tuyến và CT=<Q1..Qm> là chu tuyến đối ngẫu của C. Khi đó: + C là chu tuyến trong thì In(Qj, C) j=1..m

+ C là chu tuyến ngoài thì In(Pi, CT) i=i..n Bổ đề 2: Gọi C=<P1..Pn> là chu tuyến. Khi đó:

+ C là chu tuyến ngoài thì In(P, C) với P không nằm trên C. + C là chu tuyến trong thì Out(P, C) với P không nằm trên C

Định lý: Nếu E là một đối tượng ảnh và C là chu tuyến ngoài của E thì C là duy nhất. 3.4.3. Một số kỹ thuật dò biên

3.4.3.1. Dò biên hình thức hóa

- Nếu (B, G) là một cặp điểm biên với B là điểm ảnh và G là điểm nền.

- Dãy các cặp (B1,G1)….(Bn,Gn) là các 8 láng giềng của nhau và (B1,G1)=(Bn,Gn). - Gọi T là một thuật toán dò biên, áp dụng T cho cặp điểm (Bi, Gi) ta được (Bi+1, G i+1). - Khi đó áp dụng T, quá trình dò biên được thực hiện từ trên xuống dưới và từ trái qua phải.

3.4.3.2. Thuật toán dò biên Freeman (1986)

- Xuất phát từ một điểm trắng P (mức xám =0), quá trình dò biên sẽ đi theo các hướng 0, 2 , 4, 6 trong mặt nạ 8 hướng với quy tắc như sau:

+ Gặp điểm trắng thì sang trái, điểm đen thì sang phải.

+ Quá trình trên được lặp lại cho đến khi quay lại đúng vị trí xuất phát P. - Thông tin của một Pixel bao gồm: + Hướng đến + Mức xám + Vị trí

(30)

- Khái niệm sang trái, phải phụ thuộc vào hướng đến của điểm đang xét như trogn bảng dưới đây

Điểm trắng – sang trái Điểm đen – sang phải Hướng đến Hướng đi Hướng đến Hướng đi 0 2 0 6 2 4 2 0 4 5 4 2 6 0 6 4 VD: áp dụng tìm biên với điểm (2,2) hướng đến là 6.

1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 0 0 0 0 1 1 0 0 0 1 1 1 1 1 0 0 1 1 1 1 1 1 1

- Tuy nhiên thuật toán này phát sinh các điểm không cần quan tâm. 3.4.3.3. Thuật toán dò biên Freeman cải tiến

- Xuất phát từ một điểm trắng P (mức xám =0), quá trình dò biên sẽ đi theo các hướng 0, 2 , 4, 6 trong mặt nạ 8 hướng với quy tắc như sau:

+ Gặp điểm trắng thì sang trái, điểm đen thì quay trở lại.

+ Quá trình trên được lặp lại cho đến khi quay lại đúng vị trí xuất phát P. - Thông tin của một Pixel bao gồm: + Hướng đến + Mức xám + Vị trí

- Khái niệm sang trái, phải phụ thuộc vào hướng đến của điểm đang xét như trogn bảng dưới đây

Điểm trắng – sang trái Điểm đen – quay lại Hướng đến Hướng đi Hướng đến Hướng đi 0 2 0 4 2 4 2 6 4 5 4 0 6 0 6 2 VD: áp dụng tìm biên với điểm (1,2) hướng đến là 6.

1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 0 0 0 0 1 1 0 0 0 1 1 1 1 1 0 0 1 1 1 1 1 1 1

3.4.3.4. Thuật toán dò biên theo 8 láng giềng

- Xuất phát từ một điểm biên P, quá trình dò biên sẽ tìm một điểm biên duy nhất lân cận với P (có cùng mức xám với P) theo mặt nạ 8 hướng với thứ tự ưu tiên cho trước.

- Thông tin của một Pixel bao gồm: + Hướng đến + Mức xám + Vị trí - Thứ tự ưu tiên được cho dưới bảng sau

(31)

0 1 2 3 4 5 6 7

Hướng đến Hướng đi tiếp theo lan cận với thứ tự ưu tiên

0 7 0 1 2 3 4 1 7 0 1 2 3 4 5 2 1 2 3 4 5 6 3 1 2 3 4 5 6 7 4 3 4 5 6 7 0 5 3 4 5 6 7 0 1 6 5 6 7 0 1 2 7 5 6 7 0 1 2 3

VD: áp dụng tìm biên với điểm (1,2) hướng đến là 6. 1 1 1 1 1 1 1 1 0 0 1 1 1 0 0 0 0 1 1 0 0 0 1 1 1 1 1 0 0 1 1 1 1 1 1 1 BL:

STT Hướng đến Vị trí ban đầu Hướng đi Vị trí đến

1 6 1, 2 2 6 1, 2 5 2, 1 3 5 2, 1 6 3, 1 4 6 3, 1 0 3, 2 5 0 3, 2 7 4, 3 6 7 4, 3 0 4, 4 7 0 4, 4 3 3, 3 8 3 3, 3 1 2, 4 9 1 2, 4 3 1, 3 10 3 1, 3 4 1, 2

(32)

Chương IV. Xử lý ảnh xám

A. PHÉP TOÁN KHÔNG PHỤ THUỘC KHÔNG GIAN 4.1. Kỹ thuật tăng giảm độ sáng

4.1.1. Cộng trừ cùng 1 giá trị vào pixel Gọi I(x, y) là pixel của ảnh I.

Khi đó giá trị xám của ảnh mới sẽ là: + Inew(x, y) = | I(x, y) + c |

+ Nếu c>0: tăng độ sáng. + Nếu c<0: giảm độ sáng. 4.1.2. Tách ngưỡng

Ta chọn hai mức Thấp- Min, Cao-Max và giá trị ngưỡng λ, khi đó giá trị các pixel được định nghĩa lại như sau:

+ Inew(x, y) = Max nếu I(x, y) >= λ + Inew(x, y) = Min nếu I(x, y) < λ 4.1.3. Bó cụm- Bunching

Giảm số mức xám của ảnh bằng cách nhóm một số mức xám gần nhau lại thành một nhóm. Nếu chỉ có 2 nhóm thì tương đương với Tách Ngưỡng.

Trong trường hợp tổng quát, khi biến người ta thường lấy các nhóm có cùng kích thước SIZE, giá trị mới được tính như sau:

Inew(x, y) = (I (x, y)/SIZE)* SIZE 4.1.4. Cân bằng Histogram

Ảnh được gọi là cân bằng lý tưởng nếu với mọi mức xám g và g’ thì H(g)=H(g’). Ảnh xám MxN là cân bằng lý tưởng nếu H(0) = H(1) = M*N/2

Cân bằng Histogram

+ t(g) : tổng số pixel trong ảnh có mức xám <= g. Newlevel là số mức xám ảnh cần cân bằng.

+ f(g)= Max{0, round( t(g)*Newlevel /(M*N)) -1 } + các giá trị xám g được thay thế bởi gnew= f(g)

(33)

1 2 3 4 5 6 2 2 3 4 4 4 0 1 2 3 4 5 1 2 2 3 4 4 0 0 1 2 3 4 1 1 2 2 3 4 0 0 0 1 2 3 1 1 1 2 2 3 0 0 0 0 1 2 1 1 1 1 2 2 4.1.5. Tách ngưỡng tự động

Tìm ngưỡng λ dựa vào histogram như sau: + P= M*N: số pixel của ảnh

G là mức xám lớn nhất của ảnh

t(g) : tổng số pixel trong ảnh có mức xám <= g. + m(g) = SUM ( i*H(i) )/ t(g) i = 0..g

f(g) = [t(g)/( P-t(g) )]*[m(g)-m(G-1)] 2-1

+ λ là giá trị sao cho f(λ) = max (f(g)) với g=0..G-1 4.2. Thao tác đa ảnh

Được thực hiện trên nhiều ảnh để thu về một ảnh kết quả. Có hai phương pháp chính là lọc trung vị và lọc trung bình.

4.2.1. Lọc trung vị

Xét dãy số x1, x2.. xn đơn điệu tăng (hoặc giảm). Khi đó + n lẻ thì x(n+1)/2 là phần tử trung vị của dãy

+ n chẵn thì xn/2 là phần tử trung vị của dãy

MĐ1: Cho dãy x1, x2.. xn đơn điệu tăng, gọi Med({xi}) là phần tử trung vị của dãy, khi đó Sum(|x-xi|) - i = 1..n - sẽ đạt cực tiểu tại Med({xi})

Cho một dãy ảnh có cùng kích thước I1, I2.. In, gọi Imed là ảnh trung vị của các ảnh nếu P là một pixel của Imed thì Imed(P) = Med(Ik(P))

4.2.2. Lọc trung bình Xét dãy số x1, x2.. xn.

MĐ2: Gọi xtb= sum(xi)/n là phần tử trung bình của dãy, khi đó: Sum((x-xi)2) -i = 1..n sẽ đạt cực đại tại xtb

Cho một dãy ảnh có cùng kích thước I1, I2.. In, gọi Itb là ảnh trung bình của các ảnh nếu P là một pixel của Itb thì Itb(P) = Sum(Ik(P))/n

(34)

B. PHÉP TOÁN PHỤ THUỘC KHÔNG GIAN 4.1. Phép giãn ảnh đa cấp xám

4.1.1. Định nghĩa

Với ảnh đa cấp xám IMxN, THxK là mẫu. Gọi R là ảnh kết quả của của phép giãn ảnh I bởi mẫu T. Khi đó R có kích thước (M+H-1, N+K-1) và được xác định như sau:

+ I(x, y) = 0 với x= -(H-1) . .-1 hoặc M .. M+H-2; y = -(K-1) . .-1 hoặc N .. N+K-2 + R(x, y) = Max {I(x-i, y-j)+T(i,j)} với i = 0..H-1; j = 0..K-1; x=0.. M+H-1; y=0..N+K-1 4.1.2. Thuật toán

VD: cho ảnh I và mẫu T như sau

B1: Thêm các pixel có mức xám = 0 vào xung quanh biên I sao cho kích thước của ảnh là (M+2*H-2)x(N+2*K-2). 0 0 0 0 0 2 2 2 0 2 2 2 0 2 4 2 0 2 4 2 0 2 2 2 0 2 2 2 0 0 0 0 0 0

B2: Quay mẫu T đi 180o được T’

B3: Dịch chuyển mẫu T’ trên ảnh I theo trật tự từ trên xuống dưới, từ trái sang phải sao cho pham vi mẫu của T’ nằm trong ảnh I. Ở mỗi lần dịch chuyển, pixel ảnh kết quả tương ứng có mức xám bằng giá trị lớn nhất của tổng các cặp pixel của mẫu T’ và ảnh I tương ứng. Kết quả thu được có thể giảm đi cùng một giá trị xám thích hợp.

Loại bỏ (H-1) hàng ở cuối và (K-1) cột bên phải để thu được kết quả cuối cùng. 0 0 0 0 0 4 4 4 4 4 2 2 2 2 2 0 2 2 2 0 4 6 6 6 6 2 4 4 4 4 0 2 4 2 0 4 6 8 8 8 2 4 6 6 6 0 2 2 2 0 4 6 8 8 8 2 4 6 6 6 0 0 0 0 0 4 4 4 4 4 2 2 2 2 2 2 2 2 1 2 2 4 2 3 4 2 2 2 1 2 4 3 1 2 3 8 7 6 3 4 2 1 4 0 5 5 0 4 T T ’ 6 7 8 3 2 1

(35)

4.2 Phép co ảnh đa cấp xám 4.2.1. Định nghĩa

Với ảnh đa cấp xám IMxN, THxK là mẫu. Gọi R là ảnh kết quả của của phép co ảnh I bởi mẫu T. Khi đó R có kích thước (M+1-H, N+1-K) và được xác định như sau:

+ R(x, y) = Min {I(x+i, y+j)-T(i,j)} với i = 0..H-1; j = 0..K-1; x=0.. M+1-H; y=0..N+1-K 4.2.2. Thuật toán

B1: Dịch chuyển mẫu T trên ảnh I theo trật tự từ trên xuống dưới và từ trái sang phải sao cho mẫu T nằm trong ảnh I. Ở mỗi lần dịch chuyển, pixel ảnh kết quả tương ứng có mức xám bằng giá trị nhỏ nhất của hiệu cặp giá trị pixel ảnh I và mẫu T.

B2: Lặp lại B1 cho đến hết ảnh I.

B3: Mức xám pixel ảnh có kết quả âm, có 2 cách khắc phục: + Đặt các giá trị âm thành 0.

+ Biến đổi tổng thể mức xám: tìm giá trị xám nhỏ nhất p trong ảnh và cộng tất cả các giá trị xám lên p để mức chênh lệch giữa các pixel là không đổi.

VD: Cho ảnh I6x6 và mẫu T sau

2 2 2 2 2 2 1 1 1 1 1 1 1 2 2 2 2 2 2 4 4 4 4 2 1 1 1 3 3 3 1 2 4 4 4 2 2 4 8 8 4 2 Mẫu T 1 3 7 3 1 2 4 8 4 2 2 4 8 8 4 2 1 3 3 3 1 2 4 4 4 2 2 4 4 4 4 2 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 Ảnh kết quả Ảnh kết quả + 1 4.3. Đóng, mở mức xám - Mở mức xám: Open(I)=D(E(I)) theo T - Đóng mức xám: Colse(I)=E(D(I)) theo T 4.4. Xương ảnh

4.4.1. Phép đánh trúng – đánh trượt (Hit or miss transformation)

Các phép co và giãn ảnh đều có nguồn gốc từ phép đánh trúng, đánh trượt. Cho trước ảnh A và hai phần tử cấu trúc B1, B2 thì toán tử trúng – trật được xác định như sau:

Hitmiss(A, B1, B2) = E(A, B1) ∩ E(AC, B2) = Close(E(A, B1), E(Ā, B2) ) Với AC: là phần bù của A. Ā là phủ định của A và B1 ∩ B2= 0

Phép toán này còn được gọi là xác định viền mẫu, mẫu B1 cho đối tượng ảnh và mẫu B2 cho nền ảnh.

(36)

Sau khi tìm được góc theo các phần tử cấu trúc trên, ta kết hợp chúng lại để được kết quả là các góc lồi của ảnh.

Sử dụng phép toán HitAndMiss để tìm góc lồi của một ảnh 4.4.2. Tìm xương ảnh

Xương ảnh tìm được có yều cầu: - Có độ rộng bằng 1 điểm ảnh - Đi qua phần giữa đối tượng. - Đảm bảo Tôpô giữa các đối tượng.

Tìm xương ảnh dựa vào các phép hình thái

- Gọi Tk là mẫu có k*k phần tử mà mọi phần tử đều có giá trị là 1. - Gọi Ek(I) là phép co ảnh I với mẫu Tk.

- Openk(I) là phép mở ảnh với Tk.

- Gọi Sk(I) là xương của ảnh I. Kho đó xương được xác định như sau: S(I)= Max( Sk(I) ) k=0..K

Với: Sk(I)=Ek(I)-Openk(Ek(I)) K là giá trị mà Sk(I) là rỗng. Tìm xương ảnh theo toán tử làm gày

Thin(A, B1, N2)= S(I)= A-Hitmiss(A, B1, B2)

Việc chọn B1 và B2 sẽ rất nhiều các giải thuật làm mảnh khác nhau. Một phương pháp đưa ra là B2=0 và thực hiện phép làm mảnh liên tiếp với dãy các B1.

(37)

Xương ảnh được tìm bằng phép toán làm gầy với hai phần tử cấu trúc: Ví dụ về một số xương ảnh:

Æ

Æ

Æ

Æ

(38)

4.5. Phép lan truyền

Trong thực tế sẽ rất thuận lợi nếu như chúng ta có thể tái xây dựng lại một ảnh sau khi đã bị bào mòn hoặc làm đầy một đối tượng được xác định bởi biên của nó. Quá trình này được gọi là lan truyền – tái xây dựng hay lấp đầy vùng. Quá trình được mô tả qua thuật toán sau: + Ảnh hạt giống S(0), ảnh mặt nạ A và phần tử cấu trúc B.

+ Ta lặp S(k) = [S(k-1) B ] Λ A cho đến khi S(k) = S(k-1)

Như vậy sau mỗi lần lặp ảnh hạt giống sẽ to thêm (do phép dãn ảnh) nhưng vẫn nằm trong tập các đối tượng A. Thông thường S(0) = [1] và B có kích thước 4x4 hoặc 8x8. VD: Tìm xương của ảnh I8x8 sau

Tính S1(I)

0 0 0 0 0 0 0 0 T(1) = 1

0 0 0 0 0 0 1 4 E1(I) = I-1

0 0 0 0 1 2 4 5 Open(E1(I))= D1(E1(E1(I)))= D1(I-2) =I-1 0 0 1 1 2 5 5 4 S1(I)=(I-1) – (I-1) = 0 0 0 0 0 0 1 2 3 0 0 0 0 0 0 1 3 0 0 0 0 0 1 2 3 0 0 0 0 1 2 2 3 Tính S2(I)

E2(I) -> E2(I) +1 E2(E2(I)) + 1 Open2 - 1

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 2 4 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 1 2 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 2 0 0 0 0 0 0 0

(39)

S3(I) E3(I) + 1 ->E3(E3(I)) + 1 = 0 Open3(I) - 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 3 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 2

S4(I) => Open4(I) = 0 => dừng thuật toán ===> Xương của ảnh

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 1 2 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 2 0 0 0 0 0 0 0 0

4.6. Làm trơn theo kiểu Morphology

Thuật toán này dựa trên cơ sở rằng phép mở mức xám làm trơn ảnh xám từ phía trên mặt độ sáng, còn phép đóng làm trơn từ phía dưới. Do đó, với phần tử cấu trúc T, phép làm trơn được định nghĩa như sau: MorphSmooph(A, T)= Close(Open(A))

4.7. Các tác động ảnh xám cục bộ 4.7.1. Tác động nhân chập ở ảnh Phép nhân chập được định nghĩa như sau: A=C**B= c1

∑ ∑

+ − = + − = k k i k k j C(i,j).B(x-i, y-j) + c0

Trong đó: c1 là hằng số để chia thang, c0 là hằng số cộng thêm vào; c0, c1 = [0, 255] C là ma trận mặt nạ để thực hiện phép nhân chập. C thường có kích thước (2k+1)x(2k+1).

Phép nhân chập có các tác dụng sau:

+ Loại bỏ điểm mép., ở bộ lọc (2k+1)x(2k+1) xuất hiện một mép với độ rộng là k. + Sao chép mép ảnh cũ sang ảnh mới.

(40)

4.7.2. Phương pháp làm nhẵn

Phương pháp làm nhẵn nhằm đạt đến mục đích là loại bỏ “độ không đồng phẳng” trong các giá trị xám của ảnh hoặc các “tần số cao của ảnh”. Thông thường ta muốn nén các tần số hoàn toàn đặc biệt được tạo ra bởi nhiễu hoặc bởi các rối loạn khi thu được ảnh và nhận được mối quan hệ tín hiệu còn sót lại sau khi khả năng này đã được thực hiện. Người ta đưa ra các ma trận nhân chập khác nhau để thực hiện công việc trên. Ví dụ như các ma trận nhân chập dùng cho bộ lọc giá trị trung bình

1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 2 1 2 4 2 1 1 1 1 1 1 1 1 2 1 A. vùng lận cận 5 điểm B. vùng lân cận 9 điểm không cân bằng C. vùng lân cận 9 điểm cân bằng D. Bộ lọc Gauss cho 9 điểm 4.7.3. Giá trị trung bình di động

Phương pháp này nhằm đạt đến mục đích là xác định giá trị xám trung bình giữa các điểm ảnh cạnh nhau. Dó đó sẽ làm nhẵn các các giá trị xám của ảnh và loại trừ các tần số cao.

Giá trị trung bình là một bộ lọc tuyến tính, đồng thể và cục bộ. Trong mối quan hệ với tần số thì tương ứng với bộ lọc tần số thấp. Để giữ các giá trị trong giới hạn thì hệ số chia thang được đặt phù hợp. Với (A) là 1/5; (B) là 1/9; (C) là 1/10; (D) là 1/16.

Bộ lọc thông thấp Gauss 3x3 sẽ có dạng như sau: Hệ số chia thang =1/8 0 1 0 Hệ số chia thang = 1/(b+2)2 1 b 1 1 2 1 b b2 b 0 1 0 1 b 1 4.7.4. Bộ lọc phi tuyến

Người ta thường sử dụng 3 bộ lọc đó là: trung vị, giả trung vị và lọc ngoài. 4.7.4.1. Lọc trung vị

Điểm ảnh đầu vào sẽ được thay thế bằng trung vị các điểm ảnh. Kỹ thuật này đòi hỏi giá trị các điểm ảnh phải được sắp theo thứ tự tăng hay giảm dần. Kích thước của sổ cũng được chọn (2k+1)x(2k+1). Lọc trung vị có tác dụng sau:

+ Hữu ích cho việc loại bỏ các điểm ảnh hay các hàng mà vẫn bảo toàn độ phân giải. + Hiệu quả giảm khi các điểm nhiễu trong trong cửa sổ lớn hơn hoặc bằng một nửa số điểm trong cửa sổ.

4.7.4.2. Lọc giả trung vị

Tương tự như lọc trung vị nhưng giá trị được thay thế sẽ là (Min + max)/2. 4.7.4.3. Lọc ngoài

Giả sử có một ngưỡng xám cho các mức nhiễu tức là các giá trị vượt quá mức này thi coi là nhiễu. Khi đó với các điểm nhiễu sẽ được thay thế bằng giá trị trung bình của các điểm lân cận nó theo một cửa sổ có tâm trùng với điểm ảnh đầu vào, thường là (2k+1)x(2k+1). Điều quan trọng ở đây đó là xác định ngưỡng xám.

4.7.5. Mặt nạ gờ sai phân

4.7.5.1. Đạo hàm gián đoạn bậc nhất

Các đạo hàm được mô tả bằng các phương trình vi phân. Bởi vì một ảnh là một màng hai chiều nên ta có thể vi sai giữa hai điểm ảnh theo hướng x và y:

dB(x,y) / dx ≈Δ x B(x, y) =(B(x,y) – B(x- Δ x, y)) / Δ x dB(x,y) / dy ≈Δ y B(x, y) =(B(x,y) – B(x, y- Δ y)) / Δ x

Referências

Documentos relacionados

Pintura acrílica sobre massa Rodapé cerâmico Altura:.. Cerâmica em todas

Trindade MLZH, Caldas MA, Ramires JAF, Rochitte CE, Tsutsui JM, Nicolau JC, Mathias W Avaliação da extenção transmural do infarto agudo do miocárdio pela ecocardiografia com

A substituição parcial do toucinho por emulsão com óleo de canola pode ser uma alternativa para a diversificação e melhoria nutricional de salames tipo Italiano,

Será aberta a tela abaixo para inclusão por horário, selecione o profissional, o equipamento ou a atividade coletiva clicando na lupa ao lado do que desejar configurar.. Todas

Desde 1920, pesquisadores brasileiros e estrangeiros têm efetuado coleta de germoplasma das espécies e raças silvestres de algodoeiro do Brasil. hirsutum L raça marie

Conclui-se que a TA determinada a partir de série de treinamento intervalado de alta intensidade parece ser útil para determinar a aptidão anaeróbia e predizer a performance de 100m

o Quanto mais você treinar, mais sentirá os benefícios em ler com maior velocidade, compre- endendo muito melhor e com mais concentração. o Cante e conte durante os treinos, em

Matriz dos Custos (Matriz auxiliar): Esta matriz complementa a matriz de recursos e tem como finalidade auxiliar no processo de tomada de decisão, possibilitando selecionar os itens