Xác định vùng mã sinh viên và vùng điểm

Một phần của tài liệu Xây dựng ứng dụng tự động đọc bảng điểm (Trang 30 - 34)

Để xác định các cột mã sinh viên và cột điểm đầu tiên cần xác định được các đường thẳng đứng trong bảng. Các đường thẳng đứng trong bảng sẽ tương ứng với các cột mà ở đó tổng số điểm ảnh là lớn nhất.

Để xác định các đường thẳng đứng, đầu tiên tôi áp dụng phép co ảnh theo phần tử cấu trúc có kích thước n hàng × 1 cột các phần tử có giá trị bằng 1. Mục đích của việc áp dụng phép co này là loại bỏ bớt những điểm không nằm trên các đường thẳng đứng. Sau đó, các cột trong ảnh được chiếu lên trục ox theo công thức:

( ) ∑ ( ( )) { ( ) ( ) đ ư (3.1) Trong đó:

Pv(c): là tổng số điểm ảnh thuộc đối tượng trên cột c. H: là chiều cao của ảnh tương ứng với phần bảng. p(y,c) là giá trị điểm ảnh tại vị trí (y,c).

Các đường thẳng đứng trong bảng tương ứng với Pv(c) có giá trị lớn nhất. Từ đó căn cứ vào số thứ tự của các cột mã sinh viên và điểm ta sẽ xác định được vị trí của các cột này trong bảng. Hình 12 dưới đây là kết quả của quá trình xác định cột mã sinh viên và cột điểm tương ứng.Trong đó, hình 12.a biểu diễn các đường thẳng đứng trong bảng sau khi áp dụng phép co với phần tử cấu trúc có kích thước 50 hàng × 1 cột và phép chiếu lên trục ox, hình 12.b biểu diễn kết quả xác định cột mã sinh viên (có thứ tự bằng 2) và cột điểm (có số thứ tự bằng 6) trong bảng điểm.

(a) (b)

Hình 12: Khu vực chứa cột mã sinh viên và cột điểm trong bảng điểm

Sau khi xác định được các cột mã sinh viên và cột điểm, bước tiếp theo sẽ thực hiện việc xác định các đường ngang để tách được mã sinh viên và điểm tương ứng cho từng sinh viên. Để tìm các đường ngang trước tiên tôi cũng thực hiện các phép co ảnh với phần tử cấu trúc gồm 1 hàng × n cột để loại bớt các điểm ảnh rời rạc trong bảng, sau đó các hàng trong ảnh được chiếu lên trục oy theo công thức:

( ) ∑ ( ( )) { ( ) ( ) đ ư (3.2) Trong đó:

H: là chiều rộng của ảnh tương ứng với phần ảnh mã sinh viên

p(r,x) là giá trị điểm ảnh tại vị trí (r,x).

Các đường ngang tương ứng với Ph(r) có giá trị lớn hơn một giá trị ngưỡng cho trước. Để đảm bảo lấy được mã sinh viên và điểm chính xác cho từng sinh viên, các đường ngang được phát hiện trong vùng mã sinh viên sẽ được sử dụng để phân tách điểm cho từng sinh viên trong vùng điểm. Hình 13 dưới đây biểu diễn các vùng mã sinh viên, điểm và các đường ngang được phát hiện trên vùng mã sinh viên của một bảng điểm.

(a) (b) (c)

Hình 13: Các đường ngang được phát hiện cho vùng mã sinh viên của một bảng điểm.

Sau khi xác định được các đường ngang, các vùng quan tâm là mã sinh viên và điểm số tương ứng cho từng sinh viên sẽ được xác định.

Xử lý vùng chứa mã sinh viên

Với vùng chứa mã sinh viên, các ký tự không chiếm hết toàn bộ vùng được phát hiện, do đó tôi sử dụng hình chữ nhật tốt thiểu để hạn chế bớt vùng quan tâm, giúp giảm bớt thông tin không cần thiết làm ảnh hưởng đến kết quả nhận dạng.

Hình 15: Hình chữ nhật tối thiếu chứa mã sinh viên

Để tìm hình chữ nhật tối thiểu, tôi thực hiện tìm các cạnh bên trái, phải, trên, dưới của hình chữ nhật:

 Cạnh bên trái: Duyệt các đường scanline theo chiều từ trái sang phải của vùng quan tâm. Một đường scanline là cạnh bên trái của hình chữ nhật tối thiểu nếu tổng số điểm ảnh (thuộc đối tượng) lớn hơn một giá trị ngưỡng cho trước.

 Cạnh bên phải: Duyệt các đường scanline theo chiều từ phải sang trái của vùng quan tâm. Một đường scanline là cạnh bên phải của hình chữ nhật tối thiểu nếu tổng số điểm ảnh (thuộc đối tượng) lớn hơn một giá trị ngưỡng cho trước.

 Cạnh phía trên: Duyệt các đường scanline từ tâm (vị trí có tung độ bằng một nửa chiều cao của vùng quan tâm) hướng lên trên của vùng quan tâm. Một đường scanline là cạnh trên của hình chữ nhật tối thiểu nếu tổng số điểm ảnh (thuộc đối tượng) nhỏ hơn một giá trị ngưỡng cho trước.

 Cạnh phía dưới: Duyệt các đường scanline từ tâm (vị trí có tung độ bằng một nửa chiều cao của vùng quan tâm) hướng xuống dưới của vùng quan tâm. Một đường scanline là cạnh dưới của hình chữ nhật tối thiểu nếu tổng số điểm ảnh (thuộc đối tượng) nhỏ hơn một giá trị ngưỡng cho trước.

Xử lý vùng chứa điểm

Với vùng chứa điểm số, ngoài phần các chữ số còn có các ký hiệu ngăn cách các chữ số trong trường hợp điểm của sinh viên có phần lẻ, và các ký hiệu này có hình dạng và kích thước khác nhau phụ thuộc vào từng người viết (dấu chấm, dấu

phẩy,…). Do đó, để kết quả nhận dạng tốt hơn tôi thực hiện tách riêng từng chữ số trong vùng điểm số sau đó thực hiện nhận dạng từng chữ số.

Việc tách riêng từng chữ số trong vùng điểm số được thực hiện bằng cách tìm bounding box cho các thành phần liên thông trên vùng ảnh này với phương pháp tương tự như đã thực hiện để tìm phần bảng, sau đó những bounding box không thoả mãn (ví dụ những bounding box có kích thước quá lớn hoặc quá nhỏ, hoặc bị bao bởi bounding box khác) sẽ được loại bỏ. Cuối cùng, các chữ số sẽ được tách riêng dựa trên bounding box của nó.

Hình 16: Các chữ số trong vùng điểm được tách riêng

Một phần của tài liệu Xây dựng ứng dụng tự động đọc bảng điểm (Trang 30 - 34)