Ngày nay, với sự phát triển như vũ bão của ngành công nghệ thông tin đã và đang đưa con người chúng ta dần tiến đến một kỷ nguyên mới kỷ nguyên của tin học hoá trong đời sống. Tin học đã len lõi vào mọi ngóc ngách của cuộc sống đưa con người đến với một cuộc sống chất lượng hơn. Tin học còn giúp con người làm việc một cách hiệu quả hơn, năng suất cao hơn , và tiết kiệm được nhiều thời gian để tập trung vào những công việc khác hoặc các hoạt động khác (như vui chơi, giải trí).
73 trang |
Chia sẻ: vietpd | Lượt xem: 1547 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Luận văn Hệ thống nhập điểm tự động - Trần Viết Khôi, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
LỜI CẢM ƠN
Em xin chân thành cám ơn Khoa Công Nghệ Thông Tin, trường Đại Học Dân Lập Kỹ Thuật Công Nghệ, Tp HCM đã tạo điều kiện cho em thực hiện đề tài này.
Em xin chân thành cám ơn thầy Huỳnh Văn Đức đã tận tình hướng dẫn, chỉ bảo em trong suốt thời gian thực hiện đề tài.
Em cũng xin chân thành cảm ơn quý thầy cô trong Khoa đã tận tình giảng dạy, trang bị cho chúng em những kiến thức cần thiết trong suốt quá trình học tập tại trường, và cũng xin gởi lòng biết ơn sâu sắc đến Cha, Mẹ, các anh chị và bạn bè đã ủng hộ, giúp đỡ, động viên em trong những lúc khó khăn cũng như trong suốt những năm học vừa qua.
Mặc dù đã cố gắng hoàn thành luận văn với tất cả những nỗ lực của bản thân, nhưng luận văn chắc không tránh khỏi những thiếu sót nhất định, kính mong sự cảm thông và tận tình chỉ bảo của quý Thầy Cô.
Sinh viên thực hiện
Trần Viết Khôi
LỜI TỰA
Ngày nay, với sự phát triển như vũ bão của ngành công nghệ thông tin đã và đang đưa con người chúng ta dần tiến đến một kỷ nguyên mới kỷ nguyên của tin học hoá trong đời sống. Tin học đã len lõi vào mọi ngóc ngách của cuộc sống đưa con người đến với một cuộc sống chất lượng hơn. Tin học còn giúp con người làm việc một cách hiệu quả hơn, năng suất cao hơn ,… và tiết kiệm được nhiều thời gian để tập trung vào những công việc khác hoặc các hoạt động khác (như vui chơi, giải trí).
Mục tiêu của nhà nước ta là tin học hoá các công việc văn phòng. Để làm được điều đó các nhà khoa học đã cố gắng tạo ra những chương trình để phục vụ cho công việc trên. Một trong những công việc văn phòng ở trường học là việc nhập điểm thi của học sinh, sinh viên vào máy. Do trường học ngày càng được mở rộng, ngày càng có nhiều người tham gia học dẫn đến công việc nhập điểm vào sổ sách ngày càng nhiều. Do đó công việc nhập điểm vào máy đòi hỏi ở người nhập phải có một sự cần mẩn và sự tập trung cao độ trong việc nhập điểm vì nếu người nhập nhập điểm sai thì sẽ ảnh hưởng nghiêm trọng đến kết quả học tập của người học. Để cho công việc nhập điểm trên hiệu quả hơn và ít tốn thời gian hơn thì đòi hỏi phải có một cách nhập điểm tự động hơn.
Ngày nay với sức mạnh của ngành công nghệ thông tin và dưới sự hỗ trợ của các thiết bị phần cứng (như máy Scan, máy in …) thì sự thay thế công việc nhập điểm bằng tay không còn khó nữa mà thay vào đó là việc nhập điểm hoàn toàn do máy tính đảm trách muốn vậy ta phải có một chương trình “Nhập điểm tự động”.
Để tiếp cận và góp phần đẩy mạnh sự phát triển của ngành giáo dục ở Việt Nam , chúng em xin trình bày “Hệ thống nhập điểm tự động”. Trong khuôn khổ thời gian cho phép để làm một đề tài tốt nghiệp có thể chúng em chưa hoàn tất đầy đủ chức năng , tính linh hoạt và phổ biến của hệ thống . Sau này nếu điều kiện cho phép , đề tài này có thể phát triển rộng hơn về quy mô hoạt động sao cho hoàn chỉnh và phù hợp với thực tế.
Chúng em luôn luôn ghi nhớ công ơn các thầy cô đã dạy dỗ để chúng em có được như ngày hôm nay . Chúng em xin chân thành cảm ơn thầy Huỳnh Văn Đức đã tận tình giúp đỡ chúng em hoàn thành đề tài tốt nghiệp này.
Sinh viên
Trần Viết Khôi
NHẬN XÉT CỦA GIẢNG VIÊN
Mục lục
Chương 1: Yêu cầu của đề tài
1. Đặt vấn đề : 8
2. Giới hạn vấn đề và phát biểu bài toán : 8
2.1. Giới hạn vấn đề : 8
2.2. Phát biểu bài toán : 8
3. Phân tích dữ liệu đầu vào và ra: 8
3.1. Mô tả bảng điểm: 9
3.1.1. Phần tựa: 9
3.1.2. Phần thân: 9
3.1.3. Phần cuối: 9
3.2. Mô tả ảnh điểm : 11
3.3. Các dữ liệu đầu ra : 12
4. Những vấn đề cần được giải quyết : 12
5. Yêu cầu của đề tài : 12
5.1. Về mặt ứng dụng 12
5.2. Về mặt kỹ thuật 12
5.3. Một số yêu cầu khác : 12
Chương 2: Phân tích vấn đề và đưa ra giải thuật
1. Các vấn đề về đọc file Bitmap : 14
1.1. Nếu ra một số định dạng ảnh khi Scan : 14
1.2. Cấu trúc của window bitmap : 15
1.2.1. Cấu trúc Header : 16
1.2.2. Cấu trúc Info Header : 16
1.2.3. Cấu trúc bảng màu : 17
1.3. Phân tích một số khó khăn khi đọc ảnh bitmap : 17
1.4. Đưa ra cách đọc ảnh khả thi : 18
1.5. Xây dựng giải thuật : 18
1.5.1. Mô tả giải thuật : 18
1.5.2. Lưu đồ giải thuật : 20
1.6. Đoạn chương trình minh hoạ : 21
2. Xử lý màu trong bảng điểm : 23
2.1. Chế độ màu khi Scan : 23
2.2. Lý do phải lọc màu trong bảng điểm : 24
2.3. Đưa ra những khoảng màu được sử dụng để lấy điểm đen : 24
2.4. Xây dựng giải thuật : 24
2.4.1. Mô tả giải thuật : 24
2.4.2. Lưu đồ giải thuật : 25
2.5. Đoạn chương trình minh hoạ : 25
3. Quá trình xử lý ảnh bị biến đổi : 25
3.1. Tại sao phải xử lý ảnh bị biến đổi : 26
3.2. Các loại biến đổi thường gặp trong file điểm : 26
3.2.1. Phép tịnh tiến : 26
3.2.2. Phép quay : 26
3.2.3. Phép biến dạng : 27
3.3. Tại sao chỉ xử lý biến đổi quay : 28
3.4. Các giải pháp để xử lý một ảnh quay : 28
3.5. Xây dựng giải thuật : 29
3.5.1. Tính góc quay : 29
3.5.1.1. Giải thuật tính góc quay : 29
3.5.1.2. Lưu đồ giải thuật : 29
3.5.2. Tính ma trận quay : 30
3.5.2.1. Giải thuật tính ma trận quay : 30
3.5.2.2. Lưu đồ giải thuật : 30
3.5.3. Chuyển đổi toạ độ của một điểm theo ma trân quay : 31
3.5.3.1. Giải thuật chuyển toạ độ : 31
3.6. Đoạn chương trình minh hoạ : 31
3.6.1. Tính góc quay : 31
3.6.2. Tính ma trận quay : 31
3.6.3. Chuyển toạ độ theo ma trận quay : 32
4. Xác định mốc : 32
4.1. Tại sao phải sử dụng mốc : 33
4.2. Xác định các khoảng ảnh có thể xác định được mốc : 33
4.3. Giải pháp để xác định tâm của một mốc : 34
4.4. Xây dựng giải thuật : 35
4.4.1. Xác định mốc có trong một khoảng điểm : 35
4.4.1.1. Giải thuật : 35
4.4.1.2. Lưu đồ : 36
4.4.2. Xác định một pixel đen có thuộc một mốc : 37
4.4.2.1. Giải thuật : 37
4.5. Đoạn chương trình minh hoạ: 39
4.5.1. Chương trình xác định mốc trong một khoảng điểm : 39
4.5.2. Chương trình xác định một pixel có thuộc một mốc : 39
5. Xác định điểm tô đen : 40
5.1. Tại sao phải xác định điểm tô đen : 40
5.2. Xác định các khoảng ảnh có thể tìm được điểm tô : 41
5.3. Giải pháp để xác định tâm của điểm tô : 42
5.4. Xây dựng giải thuật : 43
5.4.1. Xác định điểm tô trong một khoảng điểm : 43
5.4.1.1. Giải thuật : 43
5.4.1.2. Lưu đồ : 44
5.4.2. Xác định một pixel đen có thuộc điểm tô : 46
5.4.2.1. Giải thuật : 46
5.5. Đoạn chương trình minh hoạ : 49
5.5.1. Chương trình xác định điểm tô trong một khoảng điểm: 49
5.5.2. Chương trình xác định một pixel đen có thuộc điểm tô : 49
6. Xác định điểm : 52
6.1. Tầm quan trọng của việc xác định điểm : 52
6.2. Xác định các toạ độ có điểm : 52
6.3. Giải pháp để tính điểm : 53
6.4. Xây dựng giải thuật : 54
6.4.1. Giải thuật tính điểm : 54
6.4.2. Lưu đồ tính điểm và vị trí : 56
6.5. Đoạn chương trình minh hoạ cách tính điểm và vị trí : 57
7. Các file mà chương trình xuất ra : 58
7.1. Tầm quan trọng của file này : 58
7.2. Cấu tạo của file điểm : 58
7.3. Cấu tạo của file lỗi : 58
7.3.1. Cấu tạo : 58
7.3.2. Danh sách các lỗi có thể xảy ra : 59
Chương 3: Thiết kế chương trình
1. Quá trình nhập điểm tự động : 60
2. Danh sách các sự kiện của quá trình xử lý điểm : 60
3. Sơ đồ dòng dữ liệu (DFD) về quá trình xử lý nhập điểm tự động: 60
Chương 4: Đánh giá sai số
1. Lý thuyết xác suất thống kê bài toán ước lượng tỷ lệ: 66
2. Aùp dụng để tính toán cho bài toán : 67
Chương 5: Kết luận
CHƯƠNG 1:
YÊU CẦU CỦA ĐỀ TÀI
Đặt vấn đề :
Từ trước đến nay trên thực tế ở Việt Nam chưa có một chương trình nào phục vụ cho việc nhập điểm tự động. Đề tài này em rất thích vì nó gắn liền thực tế và nó là một nhu cầu cần thiết của ngành giáo dục. Nếu chương trình hoạt động tốt nó sẽ giúp ích rất nhiều trong việc nhập điểm, và thông kê điểm một cách nhanh chóng trong các cuộc thi có số lượng thí sinh tham gia đông như các cuộc thi đại học …
Giới hạn vấn đề và phát biểu bài toán :
Giới hạn vấn đề :
Vấn đề nhập điểm tự động là một vấn đề rất khó đòi hỏi ta phải có một khoảng thời gian tương đối dài để giải quyết vấn đề như nhận ra các chữ viết tay của các thầy (các điểm số), mã số của các thí sinh, các môn học, kì thi … vấn đề trên đối với chúng em thì rất khó có thể giải quyết được trong khoảng thời gian là 15 tuần. Do đó chúng em đưa ra một cách giải quyết khác là thay vì nhận dạng chữ viết tay để tìm điểm thì chúng em sẽ nhận dạng những điểm tô đen trên bảng điểm theo mẫu của trường ĐHDL Kỹ thuật công nghệ. Bảng điểm này có các đặc tính rất thuận tiện cho việc nhận diện điểm là có cột điểm được tô đen do đó khi ta nhận diện được toạ độ của điểm tô thì ta sẽ xác định được điểm và số thứ tự của điểm đó trong bảng điểm.
Như vậy vấn đề nhập điểm hoàn toàn tự động đã được chuyển về hướng là khi nhập điểm thì người sử dụng phải gõ vào số phách, môn, lớp và có thể là số lần thi. Do đó vấn đề ở đây là làm sao nhận dạng được tâm của các điểm tô và cho ra điểm đưa vào CSDL.
Phát biểu bài toán :
Giáo viên khi chấm điểm xong sẽ đưa bảng điểm lên phòng đào tạo. Người nhập điểm sẽ lấy bảng điểm đưa vào máy Scan, máy Scan cho ra một file ảnh Bitmap, file ảnh này sẽ được đưa vào “Hệ thống nhập điểm tự động” cùng với số tờ, môn học, khoá học. Chương trình sẽ xử lý chỉnh sữa sao đó cho ra một file văn bản, file này sẽ được một chương trình cấp giao diện đọc và xử lý để lấy được điểm và mã số sinh viên tương ứng với bảng điểm thật và sau đó lưu vào CSDL.
“Hệ thống nhập điểm tự động” là hệ thống cho phép người nhập điểm có thể nhập một bảng điểm tự động vào hệ thống quản lý điểm.
Phân tích dữ liệu đầu vào và ra:
Dữ liệu đầu vào của chương trình là một bảng điểm theo một mẫu quy định khi cho vào máy Scan sẽ cho ra một file ảnh, file ảnh này được chương trình đọc và xử lý sau đó chương trình cho ra hai file một file chứa điểm và vị trí đã xử lý và một file chứa các lỗi nếu có xảy ra. Sau đó một chương trình xử lý về CSDL sẽ đọc hai file text đó vào xử lý và cho ra điểm, mã số của sinh viên và mã môn cho vào CSDL. Dưới đây là sự mô tả các dữ liệu trên.
Mô tả bảng điểm:
Phiếu điểm màu chủ đạo là màu đỏ, các thông tin quan trọng có màu đen hoặc xanh dương, gồm có 3 phần chính : phần tựa, phần thân, phần cuối.
Phần tựa:
Có phần thông tin cho biết bảng điểm này thuộc về trường nào, lớp nào, khoa nào, thi môn gì, phòng nào, lúc mấy giờ…Ở phần này có một điểm quan trọng để phục vụ cho công việc vào điểm tự động là nó có một mốc.
Mốc là một chấm tròn đen lớn bên góc trái gọi là mốc 1, đường kính đo được là 4cm nằm cách mép giấy bên trái là 5cm. Kế bên là dòng chữ nói về trường, khoa và lớp…. Góc bên phải là khung nhỏ chỉ dẫn cách chấm điểm đối với bảng điểm này.
Từ tâm của chấm tròn đen đến phần thân là 32cm.
Phần thân:
Là một bảng gồm có 8 dòng và 32 cột. Dòng đầu tiên là dòng tiêu đề và 30 dòng còn lại là thông tin về học sinh hoặc sinh viên và phần điểm thi. Cột đầu tiên là cột thông tin về số thứ tự, cột thứ hai là cột thông tin về mã số của học sinh hoặc sinh viên, cột thứ ba là phần thông tin về họ và tên của học sinh hoăc sinh viên, cột thứ tư là thông tin về ngày tháng năm sinh của học sinh hoặc sinh viên, cột thứ năm là phần thông tin điểm ghi bằng số, cột thứ sáu là thông tin về điểm tô, trong đó có 10 ô tròn để giáo viên tô đen tương ứng với điểm trong ô tròn có ghi các số từ 0 đến 10 là phần điểm tương ứng với phần ô được tô đen. Cột thứ bảy là phần ký tên của thí sinh và cột thứ tám là phần ghi chú của giám thị. Mỗi dòng trên phần này tương ứng với một thí sinh được lưu trong CSDL của trường.
Điểm ghi và điểm tô được giáo viên chấm với màu bút có màu đen hoặc màu xanh da trời và bắt buộc phải như vậy.
Vị trí từ tâm của mốc 1 đến cột của điểm tô cách nhau một khoảng chiều rộng là 107 cm. Khoảng cách của mỗi dòng là 6cm, khoảng cách của các ô tròn trong phần điểm tô tính từ biên của cột điểm của phần điểm tô là 4,5 cm. Đường kính của các ô tròn điểm là 3 cm. Chiều rộng của cột điểm tô là 46cm.
Phần này có chiều rộng là 188cm, chiều cao là 188cm.
Phần cuối:
Có các thông tin sau: số sinh viên có trong bảng điểm, số sinh viên dự thi, số sinh viên đạt sau khi chấm xong, số sinh viên không đạt, chữ ký của các cán bộ coi thi, chữ ký của các giáo viên chấm thi, chữ ký của thầy trưởng khoa, ngoài ra nó còn có một thông tin nữa mà không liên quan gì đến việc thi cử nhưng nó rất quan trọng cho việc nhập điểm tự động là mốc thứ hai của bảng điểm.
Điểm đen này nằm ở góc phải của bảng điểm, có đường kính là 4cm. Khoảng cách từ tâm mốc 1 đến tâm mốc 2 : chiều rộng là 183 cm , chiều cao là 223 cm .
Dưới đây là bảng điểm đã được mô tả ở trên
Mô tả ảnh điểm
Một bảng điểm khi qua máy Scan sẽ cho ra một file ảnh điểm. File ảnh điểm mà chương trình sử dụng phải là ảnh window bitmap có độ phân giải là 8 bit màu, chế độ màu là màu xám (nghĩa là 225 màu tương ứng với ảnh chỉ có các pixel sắc độ xám), ảnh không sử dụng các chuẩn nén nào, theo chuẩn TWAIN, ảnh Scan phải có độ phóng đại 100%. Aûnh phải có những đặc điểm trên thì chương trình mới xử lí được.
Aûnh điểm là một sản phẩm của máy Scan mà máy Scan là một thiết bị vật lí do đó đối với những máy Scan khác nhau đều cho ra những ảnh Scan khác nhau về màu sắc, kích thước, độ nét của bức ảnh … những khác biệt đó do rất nhiều nguyên nhân như máy Scan cũ, mới, khác hiệu…. Bản thân máy Scan khi ta Scan cùng một bức ảnh tại nhiều thời điểm khác nhau thì những ảnh Scan đó cũng không hoàn toàn giống nhau. Một bảng điểm khi Scan cho ra một ảnh Scan đôi khi lại không hoàn toàn giống như ảnh ban đầu ví dụ : những điểm mốc đôi khi lại không tròn như thực tế …. Ngoài ra còn có những sai lạc do con người gây ra như đặt ảnh vào máy Scan không thẳng, ảnh bị dơ, ảnh bị dịch chuyển, quay và đôi khi còn bị biến dạng do giấy bị cong…những biến dạng và sai lệch trên chúng ta không thể nào loại bỏ được. Ơû trong bài này, chúng ta không giải quyết vấn đề ảnh bị biến dạng mà chỉ giải quyết vấn đề ảnh bị xê dịch, quay và bức ảnh phải rõ nghĩa là các điểm và mốc phải có màu khác biệt so với màu viền.
Các thông số cần quan tâm của một ảnh Scan chuẩn :
Màu của các mốc và điểm tô phải có giá trị màu trong khoảng 0 -> 85. Nghĩa là ảnh Scan phải có màu tương đối nhìn thấy rõ.
Mốc phải có mật độ các pixel đen từ 100 -> 196 pixel. Nghĩa là mật độ điểm đen của mốc phải có độ lớn tương đối so với các điểm khác để dễ phân biệt.
Điểm tô đen phải có mật độ các pixel đen từ 30 -> 144 pixel. Điểm tô phải được tô hơn phân nửa của ô cho tô điểm.
Khoảng cách tính được từ tâm mốc 1(ở góc trái trên) đến tâm mốc 2 (ở góc phải dưới) có chiều rộng = 730 pixel, chiều cao= 874 pixel.
Khoảng cách tính được từ tâm điểm mốc một đến vị trí đầu của ô điểm tô có chiều rộng= 426 pixel và chiều cao= 144 pixel.
Chiều rộng của một ô để tô điểm tính được là 16 pixels ĩ 11 ô điểm là 176 pixel.
Chiều cao của một hàng tính được là 24 pixel ĩ 30 hàng là 720 pixel.
Aûnh điểm sử dụng để tính điểm phải có đầy đủ hai mốc và độ quay của ảnh không vượt qua ± 10 độ được tính từ mốc một.
Các dữ liệu đầu ra :
Đầu ra của chương trình gồm có hai file text có cấu trúc như sau:
Đối với file chứa điểm và vị trí gồm có 2 cột : cột thứ nhất chứa số thứ tự của thí sinh trong bảng điểm, cột 2 chứa điểm tương ứng với số thứ tự của thí sinh trong bảng điểm.
Đối với file chứa lỗi sẽ chứa lỗi của chương trình nếu nó xảy ra trong quá trình xử lý tìm điểm và vị trí.
Những vấn đề cần được giải quyết :
Từ yêu cầu của bài toán đã phát sinh ra một số vấn đề mà ta cần phải giải quyết để xử lý cho bài toán nhập điểm tự động:
Làm sao đọc được một ảnh bitmap.
Vấn đề xử lý màu trong bảng điểm.
Vấn đề xử lý ảnh bị biến đổi.
Vấn đề nhận dạng mốc.
Nhận dạng điểm tô đen.
Tính điểm và vị trí.
Xuất dữ liệu.
Những vấn đề được nêu ở đây sẽ được giải quyết trong các chương sau của đề án này.
Yêu cầu của đề tài :
Về mặt ứng dụng
Xây dựng một hệ thống nhập điểm tự động, trong đó hệ thống cho phép người nhập điểm có được các điểm được nhập nhanh và chính xác điểm của các thí sinh có trong bảng điểm vào trong máy tính (CSDL).
Về mặt kỹ thuật
Bài toán yêu cầu hệ thống có được những khả năng về mặt kỹ thuật sau:
Có một máy Scan.
Hệ điều hành Window 9x, 2000.
Một số yêu cầu khác
Ngoài các yêu cầu trên, ứng dụng có thể:
Dễ dàng cài đặt
Dễ dàng sử dụng.
Dễ dàng cập nhật và nâng cấp
CHƯƠNG 2:
PHÂN TÍCH VẤN ĐỀ VÀ ĐƯA RA GIẢI THUẬT
Các vấn đề về đọc file Bitmap :
Nếu ra một số định dạng ảnh khi Scan :
Một bức ảnh khi Scan sẽ cho ra một file ảnh ánh xạ lại tất cả những gì mà bức ảnh có được. Do cơ cấu làm việc của máy Scan là nhận dạng ánh sáng phản chiếu từ bức ảnh thật để cho ra những điểm sáng tương ứng với những điểm trên bức ảnh, do đó ảnh của máy Scan trả ra là một dạng ảnh điểm khi qua một trình xử lý đồ hoạ của máy Scan ta sẽ lưu ảnh đó lại với những định dạng nào ta thích. Đối với các loại ảnh dạng vector thì kích thước của file ảnh rất nhỏ và ảnh hiển thị trên màn hình sẽ không phụ thuộc vào độ phân giải của màn hình nhưng cơ cấu lưu ảnh của chúng rất phức tạp do đó để đọc và xử lý ảnh dạng vector là điều rất khó, trong khi đó một ảnh lưu dưới dạng pixel khi hiển thị trên màn hình sẽ phụ thuộc vào độ phân giải của màn hình và kích thước file rất lớn đối với những ảnh có độ phân giải cao nhưng bù lại chúng rất dễ đọc và dễ xử lý.
Có rất nhiều định dạng ảnh mà lưu ảnh được với dạng pixel, trong số đó có Window bitmap là được sử dụng rất nhiều trong các hệ điều hành Windows và được sử dụng rất nhiều trong các phần mền khác. Vì những lý do trên nên ta s