Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệmHình 2-15trong đó: A là số độ của góc đuợc tạo bởi đường thẳng và trục hoành, giá trị kiểu số thực. B là khoảng cách từ đường thẳng đó đến gốc toạ độ (áp dụng trong đề tài là góc trên trái của ảnh), kiểu số thực. Công thức này cũng có thể biễu diễn mọi đường thẳng bất kỳ trong không gian 2 chiều như công thức y = mx + b nhưng 2 tham số A và B của nó có giới hạn trong...
Nội dung trích xuất từ tài liệu:
PHẦN MỀM THIẾT KẾ VÀ CHẤM ĐIỂM TỰ ĐỘNG BIỂU MẪU THI TRẮC NGHIỆM - 4 Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm Hình 2-15 trong đó: - A là số độ của góc đuợc tạo bởi đường thẳng và trục hoành, giá trị kiểu số thực. - B là khoảng cách từ đường thẳng đó đến gốc toạ độ (áp dụng trong đề tài là góc trên trái của ảnh), kiểu số thực. Công thức này cũng có thể biễu diễn mọi đường thẳng bất kỳ trong khônggian 2 chiều như công thức y = mx + b nhưng 2 tham số A và B của nó có giới hạntrong ảnh 2 chiều: - A nằm trong khoảng từ -89 độ -> 90 độ. - Vì thuật toán được áp dụng cho ảnh 2 chiều, nên B được giới hạn từ 0 -> chiều dài đường chéo của ảnh. Để dùng mảng 2 chiều mô tả không gian (A,B) tương tự như không gian(m,b), bắt buộc A và B phải đựơc làm tròn đến một đơn vị nào đó, dẫn đến sai sốtrong việc xác định chính xác đường thẳng. Tuỳ theo độ chính xác đựơc yêu cầu màA sẽ đựơc tính làm tròn tới 1 đơn vị hay nữa đơn vị, thậm chí thấp hơn nữa. Ví dụ, đối với đường thẳng mà tham số A chỉ cần chính xác ở 1 đơn vị, thìmảng 2 chiều ta cần tạo sẽ có chiều dài chiều A là 180. Nhưng nếu tham số A cầnchính xác đến nữa đơn vị (0,5) thì mảng 2 chiều cần tạo sẽ phải có chiều dài là180/0,5=360. Tương tự, với độ chính xác n thì chiều dài chiều A sẽ là 180/n. Ngoài ra, do mảng có chỉ số không được âm, nên thay vì A có giá trị từ -89đến 90 độ, ta chuyển sang giá trị tương ứng từ 0 -> 179 (với 0 thực chất tương ứngcho -89, 90 tương ứng cho 179...) - 35 - Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm Như vậy, ta sẽ áp dụng thuật toán Hough Transform để nhận dạng đườngthẳng tương tự như phần đã trình bày ở trên, chỉ thay công thức: y = mx + b bằng x*cosA + y*sinA = B cũng như thay các tham số m, b bằng A và B. Ví dụ minh họa: Hình 2-16 Ta có 5 điểm 1, 2, 3, 4, 5 với vị trí trong không gian x, y như trên. - 36 - Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm Hình 2-17 Trong không gian (A,B), tập hợp các đường thẳng đi qua mỗi điểm sẽhình thành nên một đường hình sin tương ứng. Hình 2-18 Ta thấy, giao điểm có tên là dòng 1 chính là giao điểm của 3 đường sin của 3điểm 1, 3, 5. Cho nên, giao điểm dòng 1 chính là nơi mang giá trị cặp (A,B) hìnhthành nên đường thẳng đi qua 3 điểm 1, 3 và 5 trong không gian (x,y). Tương tự, giao điểm tên dòng 2 chính là nơi mang cặp giá trị (A,B) tạo nênđường thẳng đi qua 3 điểm 2, 3, 4 trong không gian (x,y). - 37 - Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm Áp dụng cho đề tài, ý nghĩa: Thuật toán Hough Transform trong đề tài được áp dụng cho các vùng ảnhtrích ra từ bốn góc của bài thi (bốn vùng ảnh này được lấy ra bằng thuật toán cắt ảnh- crop). Thuật toán giúp nhận dạng 4 vị trí đánh dấu ở 4 góc của bài thi, từ đó xácđịnh vùng chấm thi phù hợp với mẫu chấm thi. - 38 - Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm 2.2.2.2.2 Kiểm tra vùng tô Định nghĩa: Vùng tô là phần được giới hạn trong một ô tròn (các ô tròn này có rất nhiềutrên bài làm của thí sinh). Tùy theo cách làm bài của từng thí sinh mà mỗi ô tròn cóđược tô hay không. Công việc kiểm tra vùng tô là xét xem trong một ô tròn nào đócó được tô đen hay không. Tùy theo quy định của người lập trình mà số phần trămđược tô đen trong vùng tô là bao nhiêu thì ô tròn được xem là đã tô. Hình 2-19: khi chưa được tô Hình 2-20: các dạng sau khi đã tô Cách thực hiện: Do vùng tô cần xét chỉ là một vòng tròn nhỏ trong ảnh bitmap, và khi xemxét một ảnh bitmap thì ảnh đó luôn là hình chữ nhật. Cho nên đầu vào của vùng tôcần kiểm tra là một hình vuông (được lấy ra từ ảnh bài thi) có đường tròn nội tiếpchính là ô tròn đang xét. Khi đó, ta có 2 cách để kiểm tra vùng tô xem có được tô hay chưa: Cách thứ nhất: - 39 - Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm Ta sẽ quét tòan bộ vùng ảnh vuông đầu vào từ trái qua phải và từ trênxuống dưới, xét xem số pixel đen chiếm bao nhiêu phần trăm trong tổng sốpixel của vùng ảnh đầu vào. Theo quy định như trong đề tài này, nếu số pixelđen này chiếm hơn 60%, thì vùng tô đó đã đựơc tô đen, còn ngược lại làchưa được tô. ...