Đối tượng và phạm vi nghiên cứu Đối tượng nghiên cứu: - Các khái niệm và kỹ thuật xử lý ảnh số - Nền tảng .NET Framework - Ngôn ngữ lập trình C# - Lập trình ứng dụng bằng C# - Thư việ
Trang 1
ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC SƯ PHẠM
Trang 2LỜI CẢM ƠN
Em xin cảm ơn sâu sắc đến PGS.TSKH Trần Quốc Chiến đã giành thời gian và tận tình chỉ bảo, giúp em hoàn thành luận văn tốt nghiệp
Em xin chân thành cảm ơn quý thầy cô khoa Tin học trường Đại Học
Sư Phạm Đà Nẵng đã giảng dạy và quan tâm em trong quá trình học tập tại trường
Em xin gửi lời cảm ơn chân thành đến Công ty TNHH thương mại và dịch vụ công nghệ HTK-INC đã tạo điều kiện thuận lợi và hết mình hướng dẫn, chỉ bảo để em có được những kinh nghiệm thực tế để nâng cao kiến thức, kỹ năng của người kỹ sư công nghệ thông tin
Trong quá trình thực hiện và hoàn thành luận văn tốt nghiệp, em đã cố gắng tìm hiểu và hoàn thành luận văn nhưng với kinh nghiệm còn ít và vốn kiến thức còn hạn chế nên không khỏi thiếu sót Mong thầy cô nhận xét và góp ý thêm để luận văn được hoàn thiện tốt hơn nữa
Xin trân trọng cảm ơn!
Trang 3LỜI CAM ĐOAN
Tôi xin cam đoan:
1 Những nội dung trong báo cáo này là do tôi thực hiện dưới sự hướng dẫn của PGS.TSKH Trần Quốc Chiến
2 Nội dung trong báo cáo được trích dẫn rõ ràng tên tác giả, tên công trình, thời gian, địa điểm công bố
3 Mọi sao chép không hợp lệ, gian trá hay vi phạm quy chế đào tạo, tôi xin chịu trách nhiệm hoàn toàn
Sinh viên
Trần Thị Phong
Trang 4NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
Đà Nẵng, Ngày… Tháng….Năm 2015 Chữ ký của giảng viên hướng dẫn
PSG.TSKH Trần Quốc Chiến
Trang 5MỤC LỤC
DANH MỤC HÌNH VẼ v
MỞ ĐẦU 1
1 Tính cấp thiết của đề tài 1
2 Mục tiêu nghiên cứu 1
3 Đối tượng và phạm vi nghiên cứu 2
4 Phương pháp nghiên cứu 2
5 Bố cục đề tài 3
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 4
1.1 Giới thiệu tổng quan về các khái niệm cơ bản của ảnh số 4
1.1.1 Ảnh số (Digital image) 4
1.1.2 Điểm ảnh (Pixel) 4
1.1.3 Mức xám của ảnh 4
1.1.4 Nhiễu ảnh 6
1.1.5 Độ phân giải của ảnh 6
1.5.6 Ảnh Bitmap là gì? 6
1.6 Các kỹ thuật xử lý ảnh cơ bản: 8
1.6.6 Nhận dạng: 8
1.6.7 Lấy mẫu: 9
1.6.8 Xử lý và nâng cao chất lượng ảnh 9
1.6.9 Kỹ thuật xử lý ảnh nhị phân: 12
1.7 Giới thiệu về NET Framework: 14
1.8 Ngôn ngữ lập trình C#: 16
Trang 61.9 Thư viện AForge.NET: 19
CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG CHẤM THI TRẮC NGHIỆM THEO BIỂU MẪU 21
2.1 Mô tả hệ thống 21
2.1.1 Yêu cầu đặt ra 21
2.1.2 Phiếu thi trắc nghiệm: 22
2.1.3 Phần mềm chấm thi trắc nghiệm 23
2.1.4 Sơ đồ khối hệ thống 24
2.1.5 Sơ đồ phân rã chức năng: 25
2.1.6 Sơ đồ ngữ cảnh: 25
2.1.7 Sơ đồ dòng dữ liệu mức đỉnh: 26
2.1.8 Sơ đồ quan hệ các lớp: 26
2.2 Cơ chế làm việc 27
2.2.1 Nhận dạng vùng tô 28
2.2.2 Thực hiện chấm thi 30
CHƯƠNG 3: KẾT QUẢ ĐẠT ĐƯỢC 33
3.1 Các giao diện của chương trình: 33
3.1.1 Giao diện màn hình chính 33
3.1.2 Giao diện chức năng đọc đáp án của giáo viên 34
3.1.3 Form đọc đáp án bài thi của thí sinh 37
3.1.4 Form Chấm điểm 38
3.1.5 Form How To Use 42
3.2 Một số thuật toán trong chương trình sử dụng thư viện AForge: 42
Trang 73.2.1 Chuyển ảnh về màu đen trắng: 42
3.2.2 Tùy chỉnh kích thước hình ảnh: 43
3.2.3 So sánh độ giống nhau giữa 2 ảnh dựa vào màu: 43
3.2.4 Tìm ảnh dựa vào ảnh gốc: 44
3.2.5 Xoay ảnh: 46
3.2.6 Kiểm tra bức ảnh có bị méo hay không: 46
3.2.7 Thuật toán xác định ô được tô: 47
3.2.8 Đọc dữ liệu thông tin thí sinh: 48
3.2.9 Đọc dữ liệu bài làm trắc nghiệm: 50
KẾT LUẬN VÀ KIẾN NGHỊ 53
TÀI LIỆU THAM KHẢO 54
Trang 8DANH MỤC HÌNH VẼ
1.2 Ảnh gốc và ảnh kết quả sau khi tăng tương phản 11
2.1 Sơ đồ khối hệ thống chấm thi trắc nghiệm 24
Trang 93.2 Màn hình Form Teacher’s Answers 34
3.5 Màn hình Form chọn file ảnh bài thi của thí sinh 37
3.9 Sau khi lưu ở điểm chấm được vào file excel 41
3.14 Xác định tọa độ XĐầu, XCuối, YĐầu, YCuối 49
Trang 10MỞ ĐẦU
1 Tính cấp thiết của đề tài
Xã hội cần một nguồn nhân lực mới với sự bổ sung đầy đủ các kiến thức khoa học kỹ thuật đã tạo tiền đề cho ngành Giáo dục và Đào tạo xây dựng hệ thống giáo dục tiên tiến, đào tạo ra thế hệ trẻ với tầm kiến thức sâu rộng Chính
sự kiểm tra đầu ra của quá trình đào tạo này đã khiến cho hình thức kiểm tra trắc nghiệm ngày càng phổ biến rộng rãi và hiện nay được áp dụng cho hầu hết các môn học
Qua hình thức kiểm tra trắc nghiệm lượng kiến thức kiểm tra được trải rộng, không co cụm, không trọng tâm Người làm bài phải đảm bảo được tính chính xác, không lầm lẫn; tính chất mồi nhử của mỗi lựa chọn của câu trắc nghiệm chính là thử thách cho người làm bài Trắc nghiệm là hình thức được
sử dụng rộng rãi trong các kỳ thi, đặc biệt là môn Anh văn Với số lượng bài thi lớn, dụng cụ thô sơ (giấy đục lỗ hoặc phải quan sát) người chấm không tránh khỏi những nhầm lẫn xảy ra Thời gian chấm bài cũng là một vấn đề đối với người chấm và là yếu tố khách quan ảnh hưởng đến kết quả bài thi Vận dụng những kiến thức đã học vào thực tiễn, tạo một công cụ giúp giải phóng sức lao động cho người chấm, những người đã vất vả trong lĩnh vực lao động trí óc, chính là mong muốn và là nhân tố giúp người nghiên cứu mạnh dạn tiến hành tìm hiểu và thực hiện đề tài
2 Mục tiêu nghiên cứu
So với các hạn chế của các phần mềm ở trên, thì phần mục tiêu nghiên cứu phần mềm đưa ra là:
- Nhằm chuẩn xác hóa quá trình chấm bài thi
- Rút ngắn thời gian và giảm chi phí chấm bài thi
- Cho kết quả nhanh và chính xác
Trang 11- Tránh nhầm lẫn thông qua nhận dạng hình ảnh chụp từng bài thi (các file ảnh được nhập vào) và chuẩn hóa với hồ sơ của từng thí sinh
- Chấm điểm bằng công cụ máy móc (máy tính bàn, lap top có cài đặt chương trình chấm) nên vấn đề về tính sử dụng được đặt ra là: đảm bảo chính xác, không có yếu tố chủ quan tác động lúc chấm, chấm bài với số lượng lớn, thời gian chấm bài ngắn
- Và đặc biệt là tạo ra sản phẩm mà bất kỳ ai cũng đều có thể dùng được với một giá thành hợp lý
3 Đối tượng và phạm vi nghiên cứu
Đối tượng nghiên cứu:
- Các khái niệm và kỹ thuật xử lý ảnh số
- Nền tảng NET Framework
- Ngôn ngữ lập trình C#
- Lập trình ứng dụng bằng C#
- Thư viện AForge.NET
- Áp dụng thư viện AForge trong xử lý ảnh
Phạm vi nghiên cứu:
- Khái niệm cơ bản của ảnh số
- Kỹ thuật xử lý ảnh cơ bản
- Thư viện AForge.Imaging
- Áp dụng thư viện AForge.Imaging trong xử lý ảnh
4 Phương pháp nghiên cứu
- Tìm hiểu về người dùng, đặc biệt là các giáo viên để hiểu hơn về nhu cầu chấm trắc nghiệm, từ đó xây dựng ý tưởng chức năng, giao diện
- Tìm hiểu về các khái niệm, các thuộc tính và đặc điểm của ảnh số
- Tìm hiểu về các thuật toán xử lý ảnh cơ bản để hiểu cơ chế đọc ảnh
Trang 12- Tìm hiểu về thư viện AForge.NET, cụ thể là các hỗ trợ và cách sử dụng AForge.Image trong xử lý ảnh
- Tìm hiểu về lập trình ngôn ngữ C# để phục vụ việc viết chương trình
- Ngoài ra, trong quá trình tìm hiểu còn sử dụng phương pháp nghiên cứu khác như đọc các giáo trình và tài liệu tham khảo liên quan đến đề tài
5 Bố cục đề tài
Đề tài gồm 3 chương với các nội dung cơ bản sau:
Chương 1: Cơ sở lý thuyết:
- Giới thiệu tổng quan về các khái niệm cơ bản của ảnh số
- Các kỹ thuật xử lý ảnh cơ bản
- Giới thiệu về NET Framework
- Ngôn ngữ lập trình C#
- Thư viện AForge.NET
- Một số thuật toán trong chương trình sử dụng thư viện
AForge.NET
Phân tích thiết kế
- Mô tả hệ thống
- Vẽ các sơ đồ chức năng, quan hệ các lớp của ứng dụng
- Cơ chế làm việc của ứng dụng
Kết quả đạt được
Demo chương trình với các chức năng
- Chức năng đọc đáp án giáo viên từ ảnh đáp án mẫu
- Chức năng thêm tệp đáp án bài thi của các thí sinh
- Chức năng chấm điểm các thí sinh
- Chức năng ghi ra file dữ liệu excel
Trang 13CHƯƠNG 1
CƠ SỞ LÝ THUYẾT 1.1 Giới thiệu tổng quan về các khái niệm cơ bản của ảnh số
1.1.1 Ảnh số (Digital image)
Ảnh khi ta nhìn thấy bằng mắt thường là một sự liên tục về không gian cũng như độ sáng Khoảng cách giữa các điểm ảnh đó được thiết lập sao cho mắt người không thể phân biệt được ranh giới giữa chúng
Chính vì vậy, khi chúng ta nhìn một ảnh là tập hợp của rất nhiều điểm rời rạc, chúng ta sẽ có cảm giác đó là một bức ảnh liên tục Mỗi một điểm như vậy gọi là một điểm ảnh (Picture Element hay gọi tắt là pixel) Trong khuôn khổ ảnh hai chiều, mỗi pixel ứng với cặp tọa độ (x, y)
1.1.2 Điểm ảnh (Pixel)
Một bức ảnh hay một bức tranh là tập hợp hữu hạn các điểm ảnh, khoảng cách giữa các điểm ảnh đó được thiết lập sao cho mắt người không thể phân biệt được ranh giới giữa chúng Chính vì vậy, khi chúng ta nhìn một bức tranh
là tập hợp của rất nhiều điểm rời rạc, chúng ta sẽ có cảm giác đó là một bức ảnh liên tục Mỗi một điểm như vậy gọi là một điểm ảnh (Picture Element hay gọi tắt là pixel) Trong khuôn khổ ảnh hai chiều, mỗi pixel ứng với cặp tọa độ (x, y)
Điểm ảnh là một phần tử của ảnh số tại toạ độ (x, y) với độ xám hoặc màu nhất định Kích thước và khoảng cách giữa các điểm ảnh đó được chọn thích hợp sao cho mắt người cảm nhận sự liên tục về không gian và mức xám (hoặc màu) của ảnh số gần như ảnh thật
1.1.3 Mức xám của ảnh
Một điểm ảnh (pixel) có hai đặc trưng cơ bản là vị trí (x, y) của điểm ảnh
và độ xám của nó Dưới đây là tóm tắt một số khái niệm và thuật ngữ thường dùng trong xử lý ảnh
Trang 14Định nghĩa:
Mức xám của điểm ảnh là cường độ sáng của nó được gán bằng giá trị số tại điểm đó
Các thang giá trị mức xám thông thường:
Thang giá trị mức xám gồm: 16, 32, 64, 128, 256 (mức 256 là mức phổ biến
Lý do: từ kỹ thuật máy tính dùng 1 byte (8 bit) để biểu diễn mức xám: Mức xám dùng 1 byte biểu diễn: 28 =256 mức, tức là từ 0 đến 255)
Thông thường, ta sẽ làm quen với 3 loại ảnh sau dựa vào cấu trúc cũng như độ xám điểm ảnh:
Ảnh màu:
Ảnh màu là ảnh mà màu của các điểm ảnh được tạo nên bởi sự pha trộn 3 màu cơ bản (hệ màu RBG: Red Blue Green) với các tỉ lệ cường độ sáng khác nhau Với mỗi một màu cơ bản, người ta sẽ sử dụng một byte để biểu diễn cường độ sáng, chính vì vậy cần 3byte (24bit) để biểu diễn một điểm ảnh Khi
đó giá trị màu sẽ nhận giá trị từ 0 cho đến 224 (vào khoảng ≈16,7 triệu màu)
Ảnh đen trắng (ảnh xám):
Ảnh đen trắng là ảnh mà mỗi điểm ảnh chỉ có hai màu đen, trắng (không chứa màu khác) với cường độ sáng (mức xám) ở các điểm ảnh có thể sử dụng nhiều bit để biểu diễn các giá trị khác nhau
Trang 151.1.4 Nhiễu ảnh
Trước khi xem xét chi tiết các kỹ thuật xử lý ảnh cơ bản, chúng ta cần phân biệt các loại nhiễu hay can thiệp trong quá trình xử lý ảnh Trên thực tế tồn tại nhiều loại nhiễu, tuy nhiên người ta thường xem xét 3 loại nhiễu chính: nhiễu cộng, nhiễu nhân và nhiễu xung:
- Nhiễu cộng (Additive noise): thường phân bố khắp ảnh và được biểu diễn bởi: Y = X + n với Y: ảnh quan sát, X: ảnh gốc và n là nhiễu
- Nhiễu nhân: cũng thường phân bố khắp ảnh và được biểu diễn bởi: Y = X.n
- Nhiễu xung (Impulse noise): là một loại nhiễu khá đặc biệt có thể sinh ra bởi nhiều lý do khác nhau chẳng hạn: lỗi truyền tín hiệu, lỗi bộ nhớ, hay lỗi định thời trong quá trình lượng tử hóa Nhiễu này thường gây đột biến tại một số điểm ảnh
1.1.5 Độ phân giải của ảnh
Độ phân giải (Resolution) của ảnh là mật độ điểm ảnh được ấn định trên một ảnh số được hiển thị, khoảng cách giữa các điểm ảnh phải được chọn sao cho mắt người vẫn thấy được sự liên tục của ảnh Việc lựa chọn khoảng cách thích hợp tạo nên một mật độ phân bố, đó chính là độ phân giải và được phân
bố theo trục x và y trong không gian hai chiều
Ví dụ: Độ phân giải của ảnh trên màn hình CGA (Color Graphic Adaptor) là một lưới điểm theo chiều ngang màn hình: 320 điểm chiều dọc *
200 điểm ảnh (320*200) Rõ ràng, cùng màn hình CGA 12” ta nhận thấy mịn hơn màn hình CGA 17” độ phân giải 320*200 Lý do: cùng độ phân giải nhưng diện tích màn hình rộng hơn thì độ liên tục của các điểm kém hơn
1.5.6 Ảnh Bitmap là gì?
Trong đồ họa máy vi tính, BMP, còn được biết đến với tên tiếng Anh khác
là Windows bitmap, là một định dạng tập tin hình ảnh khá phổ biến Các tập
Trang 16tin đồ họa lưu dưới dạng BMP thường có đuôi là BMP hoặc DIB (Device Independent Bitmap)
Các thuộc tính tiêu biểu của một tập tin ảnh BMP (cũng như file ảnh nói chung) là:
Số bit trên mỗi điểm ảnh (bit per pixel), thường được ký hiệu bởi n Một ảnh BMP n bit có 2n màu Giá trị n càng lớn thì ảnh càng có nhiều màu,
và càng rõ nét hơn Giá trị tiêu biểu của n là 1 (ảnh đen trắng), 4 (ảnh 16 màu), 8 (ảnh 256 màu), 16 (ảnh 65536 màu) và 24 (ảnh 16 triệu màu) Ảnh BMP 24 bit có chất lượng hình ảnh trung thực nhất
Chiều cao của ảnh (height), cho bởi điểm ảnh (pixel)
Chiều rộng của ảnh (width), cho bởi điểm ảnh
Cấu trúc tập tin ảnh BMP bao gồm 4 phần
Bitmap Header (14 bytes): giúp nhận dạng tập tin bitmap
Bitmap Information (40 bytes): lưu một số thông tin chi tiết giúp hiển thị ảnh
Color Palette (4*x bytes), x là số màu của ảnh: định nghĩa các màu sẽ được sử dụng trong ảnh
Bitmap Data: lưu dữ liệu ảnh
Đặc điểm nổi bật nhất của định dạng BMP là tập tin hình ảnh thường không được nén bằng bất kỳ thuật toán nào Khi lưu ảnh, các điểm ảnh được ghi trực tiếp vào tập tin - một điểm ảnh sẽ được mô tả bởi một hay nhiều byte tùy thuộc vào giá trị n của ảnh Do đó, một hình ảnh lưu dưới dạng BMP thường có kích cỡ rất lớn, gấp nhiều lần so với các ảnh được nén (chẳng hạn GIF, JPEG hay PNG)
Trang 17Định dạng BMP được hỗ trợ bởi hầu hết các phần mềm đồ họa chạy trên Windows, và cả một số ứng dụng chạy trên MS-DOS Ngay từ Windows 3.1, Microsoft đã cho ra đời phần mềm PaintBrush, một phần mềm hỗ trợ vẽ hình ảnh đơn giản và lưu hình ảnh được vẽ dưới dạng BMP 16 hay 256 màu Tuy nhiên, do kích thước tập tin ảnh BMP quá lớn, định dạng BMP không phù hợp để trao đổi hình ảnh qua mạng Internet (do hạn chế về tốc độ truyền dữ liệu) Do đó, các trang web thường sử dụng ảnh dạng GIF, JPEG hay PNG Các định dạng này hỗ trợ các thuật toán nén hình ảnh, vì vậy có thể giảm bớt kích cỡ của ảnh
1.6 Các kỹ thuật xử lý ảnh cơ bản:
1.6.6 Nhận dạng:
Nhận dạng là quá trình phân loại các đối tượng được biểu diễn theo một
mô hình nào đó và gán chúng một tên (gán cho chúng một tên gọi, tức là một dạng) dựa theo những quy luật và mẫu chuẩn
Theo lý thuyết về nhận dạng, các mô hình toán học về ảnh được phân theo hai loại nhận dạng ảnh cơ bản:
Nhận dạng theo tham số
Nhận dạng theo cấu trúc
Một số đối tượng nhận dạng khá phổ biến hiện nay đang được áp dụng trong khoa học và công nghệ là: nhận dạng ký tự (chữ in, chữ viết tay, chữ ký điện tử), nhận dạng văn bản (Text), nhận dạng vân tay, nhận dạng mã vạch, nhận dạng mặt người…
Ngoài ra, hiện nay một kỹ thuật nhận dạng mới dựa vào kỹ thuật mạng nơ ron đang được áp dụng và cho kết quả khả quan
Trang 181.6.7 Lấy mẫu:
Lấy mẫu (sampling) là một quá trình, qua đó ảnh được tạo nên trên một vùng có tính liên tục được chuyển thành các giá trị rời rạc theo tọa độ nguyên Quá trình này gồm 2 lựa chọn:
Một là: khoảng lấy mẫu (Sampling Interval)
Hai là: cách thể hiện dạng mẫu
Lựa chọn thứ nhất được đảm bảo nhờ lý thuyết lấy mẫu của Shannon Lựa chọn thứ hai liên quan đến độ đo (Metric) được dùng trong miền rời rạc
Dạng lẫy mẫu (Tesselation) điểm ảnh là cách bài trí các điểm mẫu trong
không gian hai chiều Một số dạng mẫu điểm ảnh được cho là dạng chữ nhật, tam giác, lục giác Mỗi một mẫu, ngoài việc thể hiện hình dáng còn cho biết đặc điểm liên thông của chúng Ví dụ, mẫu chữ nhật có liên thông 4 hoặc 8 (nói
về các mẫu liền kề); mẫu lục giác có liên thông 6; mẫu tam giác có liên thông
3 hoặc 6
Hình 1.1 Các dạng mẫu điểm ảnh
1.6.8 Xử lý và nâng cao chất lượng ảnh
Nâng cao chất lượng ảnh là một bước quan trọng, tạo tiền đề cho xử lý ảnh Mục đích chính là nhằm làm nổi bật một số đặc tính của ảnh như thay đổi độ tương phản, lọc nhiễu, nổi biên, làm trơn biên ảnh, khuếch đại ảnh… Tăng cường ảnh và khôi phục ảnh là hai quá trình khác nhau về mục đích Tăng
Trang 19cường ảnh bao gồm một loạt các phương pháp nhằm hoàn thiện trạng thái quan sát của một ảnh Tập hợp các kỹ thuật này tạo nên giai đoạn tiền xử lý ảnh Trong khi đó, khôi phục ảnh nhằm khôi phục ảnh gần với ảnh thực nhất trước khi nó bị biến dạng do nhiều nguyên nhân khác nhau Sau đây ta tìm hiểu một
số kỹ thuật tăng cường ảnh
Tăng độ tương phản
Trước tiên cần làm rõ khái niệm độ tương phản Ảnh số là tập hợp các điểm, mỗi điểm có giá trị độ sáng khác nhau Ở đây, độ sáng để mắt người dễ cảm nhận ảnh song không phải là quyết định Thực tế chỉ ra rằng hai đối tượng có cùng độ sáng nhưng đặt trên hai nền khác nhau sẽ cho cảm nhận sáng khác nhau
Như vậy, độ tương phản biểu diễn sự thay đổi độ sáng của đối tượng so với nền Nói một cách khác, độ tương phản là độ nổi của điểm ảnh hay vùng ảnh
so với nền Như vậy, nếu ảnh có độ tương phản kém, ta có thể thay đổi tùy ý
theo ý muốn theo hàm sau:
b u a V a u
a u u
u f
b
a
)(
)()
Trang 20Hình 1.1 Biểu đồ dãn độ tương phản
Hình 1.2 Ảnh gốc và ảnh kết quả sau khi tăng tương phản
Tách nhiễu và phân ngưỡng
Tách nhiễu là trường hợp đặc biệt của dãn độ tương phản khi hệ số góc α=γ
=0 Tách nhiễu được ứng dụng một cách hữu hiệu để giảm nhiễu khi biết tín hiệu vào nằm trên khoảng [a,b]
Phân ngưỡng là trường hợp đặc biệt của tách nhiễu khi a = b = const và rõ ràng trong trường hợp này, ảnh đầu ra là ảnh nhị phân (chỉ có 2 mức) Phân ngưỡng hay dùng trong kỹ thuật in ảnh 2 màu vì ảnh gần nhị phân không thể cho ra ảnh nhị phân khi quét ảnh bởi có sự xuất hiện của nhiễu do bộ cảm biến
và sự biến đổi của nên Ví dụ như trường hợp ảnh vân tay:
Trang 21Hình 1.3 Tách nhiễu và phân ngưỡng
Lấy ngưỡng là một kỹ thuật xử lý ảnh cơ bản dùng đển chuyển từ ảnh mức xám hoặc ảnh màu sang ảnh nhị phân khi so sánh cường độ điểm ảnh với giá trị ngưỡng cho trước Lẫy ngưỡng thực sự là một công cụ mạnh để giữ lại những phần có nghĩa của bức ảnh mà bỏ đi những phần ít có ý nghĩa hoặc nhiễu Hình dưới đây thể hiện quá trình biến đổi ảnh mức xám sang ảnh nhị phân bằng cách lấy mẫu qua biểu đồ cường độ mức xám
Hình 1.4 Lấy ngưỡng
1.6.9 Kỹ thuật xử lý ảnh nhị phân:
Với ảnh nhị phân, mức xám chỉ có hai giá trị là 0 và 1 Do vậy, ta xét một phần tử ảnh như một phần tử logic và có thể áp dụng các phép toán hình học (Morphology Operators) dựa trên khái niệm biến đổi hình học của một ảnh bởi một phần tử cấu trúc (Structural Element) Phép toán này được định nghĩa như sau: Giả thiết ta có đối tượng X và phần tử cấu trúc B trong không gian Euclide hai chiều Kí hiệu Bx là dịch chuyển của B tới vị trí x
Trang 22Hai kỹ thuật cơ bản của phép toán hình học là: Điền đầy (Dilation) và ăn mòn (Erosion)
Trang 231.7 Giới thiệu về NET Framework:
Chương trình C# chạy trên nền NET Framework, một thành phần không thể tách rời của Windows bao gồm một hệ thống thực hiện ảo được gọi là ngôn ngữ chung (CLR) và một bộ thống nhất của các thư viện lớp CLR (Common Language Runtime) là việc thực hiện thương mại bởi Microsoft của cơ sở hạ tầng ngôn ngữ chung (Common Language Interface), một tiêu chuẩn quốc tế là
cơ sở cho việc tạo ra môi trường thực hiện và phát triển, trong đó ngôn ngữ và thư viện làm việc với nhau liền mạch
Mã nguồn được viết bằng C# được biên dịch thành một ngôn ngữ trung gian (IL) phù hợp với các đặc điểm kỹ thuật CLI Mã nguồn IL và tài nguyên, chẳng hạn như các bitmap và các chuỗi string được lưu trữ trên đĩa trong một
Trang 24tập tin thực thi được gọi là assembly - thông thường với một phần mở rộng exe hoặc dll Một assembly chứa một biểu hiện cung cấp thông tin về type, version, culture, security
Khi chương trình C# được thực hiện, assembly được nạp vào CLR, mà
có thể có những hành động khác nhau dựa trên các thông tin trong biểu hiện Sau đó, nếu đáp ứng được các yêu cầu bảo mật, CLR thực hiện chỉ trong thời gian (JIT) biên soạn để chuyển đổi mã nguồn IL sang mã máy CLR cũng cung cấp các dịch vụ khác liên quan đến tự động thu gom rác, xử lý các trường hợp ngoại lệ, và quản lý tài nguyên Mã nguồn đó được thực thi bởi CLR đôi khi được gọi là "mã được quản lý," Ngược lại với "mã không được quản lý" được biên dịch sang ngôn ngữ máy tính để thực hiện cụ thể mục tiêu hệ thống Sơ đồ dưới đây minh họa thời gian biên dịch và các mối quan hệ thời gian chạy của C# tập tin mã nguồn, các thư viện NET Framework, assembly, và CLR
Hình 1.9 Kiến trúc khung ứng dụng Net framework
Khả năng tương tác ngôn ngữ là một tính năng quan trọng của NET Framework Bởi vì các mã nguồn IL được tạo bởi các trình biên dịch C# phù
Trang 25hợp với các thông số kỹ thuật (CTS), mã nguồn IL được tạo ra từ C# có thể tương tác với mã nguồn khác mà được tạo ra từ các phiên bản NET của Visual Basic, Visual C++, hoặc phù hợp với nhiều hơn 20 ngôn ngữ CTS khác Một assembly có thể chứa nhiều module được viết bằng các ngôn ngữ NET khác nhau, và các kiểu có thể tham chiếu cũng giống như khi chúng được viết bằng cùng một ngôn ngữ
Ngoài các dịch vụ thời gian chạy, NET Framework cũng bao gồm một thư viện rộng lớn của hơn 4000 các lớp được tổ chức thành các không gian tên namespace cung cấp một loạt các chức năng hữu ích cho tất cả mọi thứ từ tập tin đầu vào và đầu ra để thao tác chuỗi để phân tích cú pháp XML, các điều khiển Windows Forms Ứng dụng C# điển hình sử dụng thư viện lớp NET Framework rộng rãi để xử lý phổ biến "hệ thống ống nước" công việc
có cả những ngôn ngữ trở nên thành công
Kế thừa và phát triển từ các ngôn ngữ lập trình trước được sự ưu ái từ hệ điều hành Window, sau đây là một số điểm nổi bật của ngôn ngữ C#
C# là một ngôn ngữ lập trình ứng dụng, ngôn ngữ biên dịch, ngôn ngữ
đa năng được phát triển bởi hãng Microsoft, là một phần khởi đầu cho kế hoạch NET.Microsoft phát triển C# dựa trên C, C++ và Java C# được miêu tả là ngôn ngữ có được sự cân bằng giữa C++, Visual Basic, Delphi và Java…
Ngôn ngữ lập trình C# được đánh giá là dễ học và kết hợp được nhiều
ưu điểm của các ngôn ngữ lập trình hướng đối tượng Java và C++ Do đó ngôn
Trang 26ngữ C# được sử dụng rộng rãi nhất C# có thể được viết với bất kỳ trình soạn thảo văn bản nào như Notepad của Windows, và sau đó biên dịch với trình biên dịch dòng lệnh của C#, csc.exe luôn đi kèm với Net framework Do đó mà ngày nay, C# được rất nhiều các coder trên thế giới ưa chuộng và tìm hiều với những
ưu điểm như sau:
C# là ngôn ngữ đơn giản
C# là ngôn ngữ hiện đại
C# là ngôn ngữ hướng đối tượng
C# là ngôn ngữ mạnh mẽ và mềm dẻo
C# là ngôn ngữ có ít từ khóa
C# là ngôn ngữ hướng module
C# là ngôn ngữ đơn giản: C# loại bỏ một vài sự phức tạp và rối rắm của những
ngôn ngữ như Java và C++, bao gồm việc loại bỏ những macro, template, đa
kế thừa, và lớp cơ sở ảo (virtual base class) Chúng là những nguyên nhân gây
sự nhầm lẫn hoặc những vấn đề cho các nhà phát triễn C++ C# khá giống về diện mạo, cú pháp, biểu thức, toán tử và những chức năng được lấy trực tiếp từ
ngôn ngữ C và C++ nhưng nó được cải tiến và đơn giản hơn
C# có được những đặc tính của ngôn ngữ hiện đại như:
- Xử lý ngoại lệ
- Thu gom bộ nhớ tự động
- Có những kiểu dữ liệu mở rộng
- Bảo mật mã nguồn
C# là ngôn ngữ hướng đối tượng
C# hỗ trợ tất cả những đặc tính của ngôn ngữ hướng đối tượng là:
Trang 27- C# là ngôn ngữ sử dụng giới hạn những từ khóa Phần lớn các từ khóa dùng
để mô tả thông tin, nhưng không gì thế mà C# kém phần mạnh mẽ Ta có thể tìm thấy rằng ngôn ngữ này có thể được sử dụng để làm bất cứ nhiệm vụ nào
C# là ngôn ngữ it từ khóa: Phần lớn các từ khóa được sử dụng để mô tả thông
tin Bảng sau liệt kê các từ khóa của C#
Hình 1.10 Từ khóa của ngôn ngữ C#
C# là ngôn ngữ hướng module: Mã nguồn C# có thể được viết trong những
phần được gọi là những lớp, những lớp này chứa các phương thức thành viên
Trang 28của nó Những lớp và những phương thức có thể được sử dụng lại trong ứng dụng hay các chương trình khác Bằng cách truyền các mẫu thông tin đến những lớp hay phương thức chúng ta có thể tạo ra những mã nguồn dùng lại có hiệu quả
1.9 Thư viện AForge.NET:
Aforge.NET là một C# framework được thiết kế nhằm phục vụ cho các nhà phát triển và các nhà nghiên cứu trong 2 mảng đề tài về tin học: Computer Vision và Artificial Intelligent Hỗ trợ trực tiếp các lĩnh vực như : image processing, neural network, genetic algorithms, machine learning Framework này được chia làm 5 mảng chính:
AForge.Imaging: thư viện hỗ trợ xử lí ảnh
AForge.Neuro: thư viện hỗ trợ lập trình mạng noron
AForge.Genetic: thư viện hỗ trợ lập trình tiến hóa
AForge.Vision: thư viện hỗ trợ lập trình thị giác máy tính
AForge.MachineLearning : thư viện máy học
Trong chương trình của tôi sử dụng thư viện AForge.Imaging, thư viện này gồm nhiều thư viện con như:
- AForge.Imaging.Filters: chứa tập hợp các giao diện và các lớp, cung
cấp các bộ lọc xử lý hình ảnh khác nhau Classes của thư viện cho phép thực hiện các phép chuyển đổi hình ảnh nguồn khác nhau, trực tiếp vào ảnh gốc hoặc cung cấp hình ảnh mới như một kết quả của việc xử lý hình ảnh thông thường
- AForge.Imaging.Formats: chứa các lớp và giao thức, sử dụng để xử
lý các định dạng tập tin hình ảnh khác nhau
Trang 29- AForge.Math: chứa tập hợp các tiện ích toán học, được sử dụng bởi
thư viện AForge.NET hoặc có thể được sử dụng riêng lẻ
- Thư viện AForge.Imaging.Filters.ContrastCorrection hỗ trợ điều
Trang 30CHƯƠNG 2 PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG CHẤM THI TRẮC NGHIỆM
THEO BIỂU MẪU 2.1 Mô tả hệ thống
2.1.1 Yêu cầu đặt ra
Hệ thống đơn giản, giá cả hợp lý mà vẫn đảm bảo được độ ổn định, tính chính xác và tốc độ cao trong quá trình hoạt động Hệ thống phải thỏa mãn những yêu cầu cơ bản sau:
Yêu cầu về giá thành và độ phức tạp:
- Có giá thành và như chi phí vận hành rẻ
- Dễ dàng để bảo hành bảo trì, sử dụng các thiết bị sẵn có trong văn phòng
- Phần mềm đơn giản và dễ dàng sử dụng
Yêu cầu về chức năng:
- Hệ thống nhận dạng và chấm được điểm thi trắc nghiệm ở nhiều hình thức khác nhau
Trang 312.1.2 Phiếu thi trắc nghiệm:
Hình 1.11 Phiếu thi trắc nghiệm
Trên phiếu thi trắc nghiệm có 2 vùng thông tin cơ bản: