Sau khi công việc tiền xử lý ảnh đã hoàn thành, hình đã được đưa vềđúng chuẩn so với mẫu phiếu gốc.
Việc nhận dạng điểm cho từng sinh viên được thực hiện qua các bước sau: - Xác định ra mã bảng điểm trên mẫu biểu.
- Truy xuất cơ sở dữ liệu để lấy ra danh sách sinh viên trong mẫu biểu.
- Kiểm tra lại một lần nữa xem danh sách sinh viên và mẫu phiếu đang quét có trùng khớp với nhau hay không?
Int GetMaPhieuDiem() {
int Kq[];
Int i=0, mapd=0;
Duyệt qua các vị trí mà các nút mã tờ xuất hiện { If( không tồn tại) Kq[i++]=0; Else Kq[i++]=1; }
mapd =Chuyển giá trị mảng kq thành giá trị số nguyên;
return mapd;
}
Dựa vào mapd đã tìm được ở trên. Truy vấn vào cơ sở dữ liệu để lấy ra danh sách sinh viên nằm trên phiếu điểm này và lưu vào mảng SinhVien.
- Tiến hành duyệt qua danh sách sinh viên và nhận dạng điểm cho từng sinh viên.
- Xuất kết quả ra màn hình cho người dùng xác nhận lại. Hình hiển thị trên màn hình đã được đánh dấu những vùng mà chương trình đã nhận dạng được, giúp người dùng kiểm tra dễ dàng và nhanh chóng.
Do các dòng điểm của từng sinh viên được thiết kế có độ cao h bằng nhau. Và danh sách đó có số lượng sinh viên là nSV.
Các nút đặc trưng [4.2] và [4.4],[4.5] xác định phạm vi của vùng tô điểm. Gọi d là khoảng cách theo độ cao từ [4.2] đến [4.4]
If (abs(nSV*h)- d)>dx)//dx là độ sai số cho phép { Không đúng mẫu phiếu.
Cho phép xác nhận lại mapd bằng tay và cho phép nhập tay bảng điểm này
}
Else
{ Tiếp tục quá trình quét phiếu điểm }
Cho i Duyệt qua danh sách sinh viên {
Duyệt qua vùng tô điểm của sinh viên i ở dòng có số thứ tự là i ghi nhận và lưu điểm của sinh viên.
Chuyển sang dòng tiếp theo. }
- Sau khi người dùng xác nhận thì sẽ tiến hành lưu lại điểm đó vào trong cơ sở dữ liệu. Đồng thời sẽ tiến hành nén và lưu lại tập tin hình ảnh đó.
- Đọc tiếp những mẫu phiếu tiếp theo và tiến hành nhận dạng theo các bước như trên.
CHƯƠNG 4: KẾT QUẢ VÀ
NHỮNG MODULE ĐÃ HOÀN THÀNH