CHƯƠNG 1 : TỔNG QUAN ẢNH 1 Ảnh Bitmap 1.1 Cấu trúc ảnh Bitmap Tương tự với các loại ảnh khác, tập tin Bitmap (BMP) bao gồm: • Tiêu đề (Header), phần này bao gồm: o Tiêu đề tập tin (File header) o Tiêu đề hình ảnh (Bitmap header) • Bảng màu (Color map) • Dữ liệu hình ảnh (Image data ) Hình sau đây minh họa cấu trúc ảnh Bitmap: File Header (Tiêu đề tập tin) bfType bfSize Bitmap Header bfReserved (1) bfReserved (2) (Tiêu đề hình ảnh) bfOffset biSize Color Map biWidth (Bảng màu) biHeight biPlanes biBitCount biCompression Image Data biSizeImage (Dữ liệu hình ảnh) biXPelsPerMeter …………………. biYPelsPerMeter biClrUsed biClrImportant Hình 1.1: Cấu trúc ảnh bitmap 1.1 Tiêu đề Phần tiêu đề bao gồm tiêu đề tập tin và tiêu đề hình ảnh. + Tiêu đề tập tin gồm các thông tin liên quan đến bản thân tập tin: bfType: là vùng dài 2 byte, luôn chứa 2 kí tự ‘BM’ để thể hiện tập tin kiểu Bitmap. bfSize: là vùng dài 4 byte, cho biết kích thước tổng cộng của tập tin Bitmap.
bfReserved1 và bfReserved2: là 2 vùng, mỗi vùng dài 2 byte, 2 vùng này chừa trống để dự phòng. bfOffset: là vùng dài 4 byte, chỉ ra vị trí bắt đầu của vùng dữ liệu. Trang 1 Bài toán xử lý và phân tích để đếm các đối tượng ảnh hai chiều + Tiêu đề hình ảnh gồm các chi tiết liên quan đến hình ảnh chứa trong tập tin: biSize: là vùng dài 4 byte, cho biết kích thước vùng tiêu đề hình ảnh. biWidth: là vùng dài 4 byte, cho biết chiều rộng của hình.
biHieght: là vùng dài 4 byte, cho biết chiều dài của hình. biPlanes: là vùng dài 2 byte, luôn chứa giá trị 1. biBitCount: là vùng dài 2 byte, cho biết số bit để diễn đạt trị số pixel, các giá trị có thể là 1, 4, 8 hoặc 24. biCompression: là vùng dài 4 byte, cho biết dữ liệu ảnh có được nén hay không.
biSizeImage: là vùng dài 4 byte, cho biết kích thước bản thân ảnh đó. biXPelsPerMeter và biYPelsPerMeter: là 2 vùng dài 4 byte, cho biết độ phân giải theo chiều ngang và dọc. biClrUsed: là vùng dài 4 byte, cho biết số màu trong bảng màu. biClrImpotant: là vùng dài 4 byte, cho biết có bao nhiêu màu trong hình là màu quan trọng.2 Bảng màu Bảng màu chỉ ra các giá trị cường độ màu được sử dụng trong ảnh.
Bảng màu có hay không, dài hay ngắn là tùy thuộc vào loại ảnh Bitmap.3 Dữ liệu hình ảnh Pixel được lưu trữ theo dòng, từ trái sang phải trong mỗi dòng. Những dòng được lưu trữ từ dưới lên trên của bức ảnh.2 Tính toán và lưu trữ trên ảnh Một cảnh vật trong không gian ba chiều được thể hiện dưới dạng ảnh hai chiều trong máy tính để có thể thao tác. Ảnh trên máy tính được lưu trữ dưới dạng những con số để có thể tính toán khi thao tác với nó. Để làm được điều này, người ta dùng ảnh raster.
Ảnh raster giống như một ma trận số hai chiều, mỗi phần tử trong ma trận tương ứng với một pixel trên bức ảnh. Đề tài này, chúng em sử dụng ảnh Grey-level. Vì vậy dữ liệu hình ảnh sẽ được lưu trữ trong một ma trận hai chiều mà mỗi phần tử có giá trị trong khoảng từ 0 đến 255 ứng với giá trị màu của nó. Trang 2 Bài toán xử lý và phân tích để đếm các đối tượng ảnh hai chiều 2 Ảnh Bi-level 2.1 Giới thiệu ảnh Bi-level - Ảnh Bi-level là ảnh chỉ có 2 cường độ màu, thường là đen và trắng.
- Ảnh Bi-level có được từ ảnh màu bằng cách nén các cường độ màu đến khi chỉ còn hai cường độ. - Ảnh Bi-level được sử dụng để dễ dàng phân biệt các đối tượng với nền ảnh. Sau đó, đối tượng có thể được nhận biết từ hình dạng, kích thước, phương hướng của nó.1: Ảnh Bi-level gồm các tế bào hồng cầu và bạch cầu 2.2 Các khái niệm cơ bản 2.1 Lân cận của 1 pixel - Một pixel P ở dòng i cột j trên bức ảnh raster (Kí hiệu: P[i,j]) nằm kề các pixel khác theo sơ đồ sau: 8 1 2 (i-1,j-1) (i-1,j) (i-1,j+1) 7 0 3 (i,j-1) (i,j) (i,j+1) 6 5 4 (i+1,j-1) (i+1,j) (i+1,j+1) Trang 3 Bài toán xử lý và phân tích để đếm các đối tượng ảnh hai chiều - Pixel P mang số 0, các pixel lân cận được đánh số từ 1 đến 8. Lân cận dọc của P mang số 1, 5; Lân cận ngang của P mang số 3, 7; Lân cận chéo của P mang số 2,4,6,8.
- Pixel Q là lân cận 4 của P nếu nó là lân cận dọc hoặc lân cận ngang của P. - Pixel Q là lân cận 8 của P nếu nó là lân cận của P.2 Đường đi Một đường đi từ pixel P[i0,j0] đến pixel Q[in,jn] là một dãy các pixel P0[i0,j0], P1[i1,j1], P2[i2,j2], … P[in,jn] thỏa điều kiện pixel Pk [ik,jk] là lân cận của pixel Pk+1 [ik+1,jk+1] với ∀k : 0 ≤ k ≤ n − 1 Đường đi 4 Đường đi 8 Hình 2.3 Vùng đối tượng-Foreground Tập hợp tất cả các pixel đen trong ảnh được gọi là vùng đối tượng hay Foreground.4 Sự liên kết Cho pixel P thuộc vùng đối tượng S, P liên kết với pixel Q thuộc S nếu có một đường đi từ P đến Q gồm những pixel thuộc S.5 Vùng liên thông Tập hợp các pixel trong đó mỗi pixel liên kết với tất cả các pixel còn lại được gọi là vùng liên thông. Trong bài viết này dùng thuật ngữ đối tượng hoặc vùng để thay cho vùng liên thông.6 Nền ảnh(Background) và lỗ trống(Hole) Gọi U: toàn bộ không gian bức ảnh. Trang 4 Bài toán xử lý và phân tích để đếm các đối tượng ảnh hai chiều Đặt S = U-S; Tập hợp tất cả các vùng liên thông của S mà có pixel nằm trên đường viền của ảnh được gọi là nền ảnh (Background).
Các vùng còn lại của S được gọi là lỗ trống (Hole). Nếu không cần sự phân biệt rõ ràng, thuật ngữ “nền ảnh” được dùng để bao gồm cả nền ảnh và lỗ trống được định nghĩa ở trên. Background Foreground Hole Hình 2.6: Nền ảnh, vùng đối tượng và lỗ trống 2.7 Bao đóng và phần trong Bao đóng của một vùng là tập hợp các pixel thuộc vùng đó mà có lân cận thuộc nền hoặc lỗ trống (thường sử dụng lân cận 4). Phần trong của đối tượng là tập hợp các pixel thuộc vùng đó mà không nằm trên bao đóng của nó.
Bao đóng Ảnh gốc Phần trong Hình 2.7: Bao đóng và phần trong 2.3 Các số đo cơ bản của vùng 2.1 Diện tích - Diện tích của một vùng được tính bằng tổng số pixel tạo nên vùng đó. - Phương pháp tính diện tích của một vùng: Trang 5 Bài toán xử lý và phân tích để đếm các đối tượng ảnh hai chiều + Xác định vùng cần được tính diện tích, đánh dấu tất cả các pixel thuộc vùng đó với 1 giá trị cường độ duy nhất. + Các pixel có giá trị cường độ đó được đếm và kết quả đếm cuối cùng chính là diện tích của vùng.2 Chu vi - Chu vi của một vùng chính là số pixel tạo nên bao đóng của vùng đó. - Xác định trọng của một một pixel P: + Nếu hai lân cận của P đều là lân cận 4 thì P có trọng là 1.
+ Nếu hai lân cận của P đều là lân cận chéo thì P có trọng là 1. + Nếu P có một lân cận 4 và một lân cận chéo thì P có trọng là 1. - Phương pháp tính chu vi của một vùng: + Các pixel trên bao đóng được đánh dấu. + Các pixel này và các lân cận của nó được kiểm tra để xác định trọng của pixel.
+ Trọng của tất cả các pixel được cộng lại; kết quả cuối cùng chính là chu vi của đối tượng.3 Chiều dài - Chiều dài là một số đo liên quan đến đoạn thẳng có bề rộng 1 pixel. - Phương pháp tính chiều dài của đoạn thẳng tương tự như cách tính chu vi, tuy nhiên pixel đầu và cuối được tính trọng như sau: + Trọng là 0.5 nếu lân cận của nó là lân cận 4.707 nếu lân cận của nó là lân cận chéo.4 Tâm của vùng - Tâm của vùng là một điểm mà tại đó đối tượng có thể cân bằng.Tâm của vùng còn được gọi là trọng tâm của đối tượng. Tâm vùng Hình 2.4: Tâm vùng - Giả sử xét ảnh F , pixel trong ảnh có cường độ bằng 1 nếu nó thuộc về đối tượng hoặc bằng 0 nếu ngược lại.5 Số đo độ tròn(Circularity Measure) Số đo độ tròn được xác định theo công thức sau: A C = 4π × P2 với P: chu vi của đối tượng. A: diện tích của đối tượng.
Khi đối tượng đang xét có dạng tròn thì số đo này có giá trị bằng 1, và giá trị sẽ giảm nếu đối tượng có hình dạng không đều.6 Công thức xác định số đo dạng hình chữ nhật Số đo dạng hình chữ nhật được tính theo công thức: Ar R= A min với Ar : diện tích đối tượng đang xét. Amin : diện tích hình chữ nhật nhỏ nhất chứa đối tượng. Nếu đối tượng là hình chữ nhật thì tỷ số này sẽ có giá trị là 1, và sẽ giảm nếu đối tượng có hình dạng phức tạp hơn.4 Một số thao tác đơn giản trên ảnh Bi-level 2.1 Xác định bao đóng - Đối với hầu hết các đối tượng, sử dụng bao đóng đủ để nhận biết đối tượng, đồng thời cũng rất thuận tiện do bao đóng chứa ít pixel hơn. - Các bước xác định bao đóng của một vùng: + Các pixel trên bao đóng của vùng đó được đánh dấu với cùng một giá trị mới( là những pixel có ít nhất một lân cận thuộc nền ảnh hoặc lỗ trống ).
+ Sau đó, tất cả các pixel của vùng không có giá trị đó được xóa (đặt cùng giá trị với cường độ nền). Phần còn lại chính là bao đóng của vùng. 0000000000 0000000000 0000000000 0000111100 0000222200 0000222200 0001111100 0002111200 0002000200 0001111100 0002222200 0002222200 0000000000 0000000000 0000000000 Ảnh dữ liệu Đánh dấu pixel Xóa các pixel thuộc bao đóng không thộc bao đóng Hình 2.1: Các bước xác định bao đóng đối tượng Trang 7 Bài toán xử lý và phân tích để đếm các đối tượng ảnh hai chiều 2.2 Xác định trục chính của đối tượng( Principal axis) - Định nghĩa trục chính của đối tượng: là đường thẳng đi qua tâm của đối tượng và có tổng khoảng cách đến tất cả các pixel thuộc đối tượng là ngắn nhất. - Các bước xác định trục chính của đối tượng: + Định vị tâm của đối tượng.
+ Đánh dấu tất cả các pixel thuộc bao đóng và nằm phía bên trên( hoặc ngang) của tâm.