Tải bản đầy đủ (.doc) (76 trang)

Thiết kế hệ thống nhập điểm tự động

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (916 KB, 76 trang )

Thiết kế hệ thống nhập điểm tự động GVHD: Thầy Huỳnh Văn Đức
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
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 hơn để 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 nghiên cứu để 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 cho học sinh, sinh viên vào cơ sở dữ
liệu của trường. Công việc nhập điểm vào máy đòi hỏi sự tập trung cao độ của
người nhập vì nếu người nhập nhập điểm sai thì sẽ ảnh hưởng đến kết quả học
tập của người học. Để cho công việc trên hiệu quả hơn thì đòi hỏi phải có một
cách nhập điểm tự động hơn.
Để 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ô
và sâu hơn về chất lượng để chương trình hoạt động sao cho hoàn chỉnh và phù
hợp với thực tế hơn.
Sinh viên thực hiện
Nguyễn Văn Thành
SVTH: Nguyễn Văn Thành Trang 1
Thiết kế hệ thống nhập điểm tự động GVHD: Thầy Huỳnh Văn Đức
NHẬN XÉT CỦA GIẢNG VIÊN









































SVTH: Nguyễn Văn Thành Trang 2
Thiết kế hệ thống nhập điểm tự động GVHD: Thầy Huỳnh Văn Đức
NHẬN XÉT CỦA GIẢNG VIÊN







































SVTH: Nguyễn Văn Thành Trang 3
Thiết kế hệ thống nhập điểm tự động GVHD: Thầy Huỳnh Văn Đức
MỤC LỤC
Chương 1: Tổng quan về xử lý ảnh
1.1. Mở đầu
1.1.1. Đònh dạng file ảnh bitmap (BMP)
1.1.2. Đònh dạng file ảnh JPEG
1.1.3. Đònh dạng file ảnh TIFF (Tag Image File Format)
1.1.4. Đònh dạng file ảnh GIF (Graphices Interchange Format)
1.2. Các phép biến đổi trong đồ họa hai chiều
1.2.1. Các phép biến đổi hình học cơ sở
1.2.2. Một số tính chất của phép biến đổi Affine

1.2.2.1. Phép biến đổi Affine bảo toàn đường thẳng
1.2.2.2. Tính song song của các đường thẳng được bảo
toàn
1.2.2.3. Tính tỉ lệ về khoảng cách được bảo toàn
1.2.3. Một số phép biến đổi khác
1.2.3.1. Phép đối xứng
1.2.3.2. Phép biến dạng
Chương 2: Nhận dạng các chấm đen
2.1. Xác đònh hai mốc của file bảng điểm
2.1.1. Giải pháp để xác đònh tâm của một mốc
2.1.2. Xây dựng giải thuật
2.2. Xác đònh các điểm trong file bảng điểm
Chương 3: Phân tích bài toán
3.1. Đặt vấn đề
3.2. Giới hạn vấn đề và phát biểu bài toán
3.2.1. Giới hạn vấn đề
3.2.2. Phát biểu bài toán
3.3. Mô tả dữ liệu đầu vào, dữ liệu đầu ra và xử lý dữ liệu
3.3.1. Dữ liệu đầu vào của chương trình
3.3.2. Dữ liệu đầu ra của chương trình
3.3.3. Phần xử lý dữ liệu
3.4. Giới thiệu sơ lược về tờ bảng điểm và file bảng điểm
3.4.1. Mô tả tờ bảng điểm
3.4.1.1. Phần tựa
3.4.1.2. Phần thân
3.4.1.3. Phần cuối
3.4.2. Mô tả file bảng điểm
SVTH: Nguyễn Văn Thành Trang 4
Thiết kế hệ thống nhập điểm tự động GVHD: Thầy Huỳnh Văn Đức
3.5. Những vấn đề cần giải quyết

3.5.1. Những vấn đề cần giải quyết để cho ra file điểm
3.5.2. Những vấn đề cần giải quyết để nhập điểm vào cơ sở dữ
liệu
Chương 4: Thiết kế các bảng cần thiết cho việc nhập điểm
4.1. Giới thiệu các hệ quản trò cơ sở dữ liệu
4.1.1. Hệ quản trò cơ sở dữ liệu Access
4.1.2. Hệ quản trò cơ sở dữ liệu SQL Server
4.1.2.1. Giới thiệu sơ lược về SQL Server
4.1.2.2. SQL Server
4.1.2.3. Chuyển từ Microsoft Access sang SQL Server
4.1.2.3.1. Dùng Microsoft Access Upsizing Tools
4.1.2.3.2. Xuất dữ liệu sang SQL Server dùng
bảng liên kết
4.1.3. Hệ quản trò cơ sở dữ liệu Oracle
4.2. Xây dựng các bảng
4.2.1. Mô tả
4.2.2. Tạo bảng
4.2.3. Mô hình quan niệm dữ liệu và mô hình xử lý
4.3. Nhập dữ liệu vào cơ sở dữ liệu
Chương 5: Thực hiện việc nhập điểm vào cơ sở dữ liệu
5.1. Giới thiệu về môi trường phát triển của Visual Basic 6 và các điều
khiển của nó
5.1.1. Giới thiệu về Visual Basic
5.1.2. Giới thiệu các điều khiển chính được sử dụng trong chương
trình
5.1.2.1. Giới thiệu điều khiển Textbox
5.1.2.2. Giới thiệu điều khiển Command Button
5.1.2.3. Giới thiệu điều khiển PictureBox
5.1.2.4. Giới thiệu về Form trong Visual Basic
5.1.2.5. Giới thiệu điều khiển DataCombo

5.1.2.6. Giới thiệu về hàm Shell trong Visual Basic
5.1.2.7. Giới thiệu điều khiển DataGrid
5.1.2.8. Giới thiệu điều khiển ListView
5.1.2.9. Cách truy xuất file text tuần tự
5.2. Yêu cầu
5.3. Xử lý
5.3.1. Chuẩn bò file ảnh và các vấn đề liên quan
5.3.2. Xử lý file ảnh để cho ra file điểm
5.3.2.1. Sơ đồ xử lý file ảnh ra file điểm
SVTH: Nguyễn Văn Thành Trang 5
Thiết kế hệ thống nhập điểm tự động GVHD: Thầy Huỳnh Văn Đức
5.3.2.2. Trình bày việc xử lý file ảnh
5.3.3. Xử lý dữ liệu trên cơ sở dữ liệu để nhập điểm
5.3.3.1. Sơ đồ cho việc xử lý dữ liệu
5.3.3.2. Trình bày cách xử lý dữ liệu
5.3.4. Nhập điểm vào cơ sở dữ liệu
5.3.4.1. Sơ đồ mô tả
5.3.4.2. Trình bày cách nhập điểm
5.3.5. Xem điểm sinh viên trong cơ sở dữ liệu
5.3.5.1. Sơ đồ mô tả
5.3.5.2. Xem điểm
5.4. Giải thuật
5.4.1. Đánh số thứ tự của sinh viên
5.4.2. Cập nhật điểm thi
Chương 6: Ưu điểm, khuyết điểm và hướng phát triển của đề tài
6.1. Ưu điểm
6.2. Khuyết điểm
6.3. Hướng phát triển của đề tài
SVTH: Nguyễn Văn Thành Trang 6
Thiết kế hệ thống nhập điểm tự động GVHD: Thầy Huỳnh Văn Đức

CHƯƠNG 1:
TỔNG QUAN VỀ XỬ LÝ ẢNH
1.1. MỞ ĐẦU:
Khái niệm về ảnh số xuất hiện từ năm 1964. Chẳng bao lâu, một nhánh
mới của khoa học gọi là xử lý ảnh số ra đời. Kể từ đó, liên tục phát triển và tạo
ra các kỹ thuật quan trọng ảnh hưởng trực tiếp đến các lónh vực truyền thông,
tivi, kỹ xảo đồ hoạ,
Xử lý ảnh là một trong các vấn đề ngày nay được thế giới quan tâm,
nghiên cứu và ứng dụng. Ở Việt Nam, vấn đề xử lý ảnh cũng được quan tâm và
nghiên cứu trong thời gian gần đây .
Ảnh hai chiều (ảnh 2D) được biểu diễn bởi ma trận hai chiều. Mỗi số
phần tử biểu diễn một giá trò mức xám (hay màu) của một điểm ảnh tương ứng.
Nếu số bít dùng để lưu giá trò mức xám (hay màu) của một điểm ảnh là 8 bít,
thì số mức xám (hay màu) cho phép là 2
8

(hay 256) giá trò mức xám (hay màu)
có thể. Các giá trò mức xám (hay màu) nầy thường gán giá trò nguyên dãy từ 0
đến 255, với 0 biểu diễn cho mức cường độ tối nhất (hay màu đen) và 255 biểu
diễn cho mức cường độ sáng nhất (hay màu trắng). Mỗi phần tử trong ma trận
được gọi là phần tử ảnh (a picture element).
Dưới đây là phần mô tả các đònh dạng của ảnh đồ họa thông dụng nhất
hiện nay:
1.1.1. Đònh dạng file ảnh bitmap (BMP):
Những file ảnh bitmap Windows được lưu trữ trong một đònh dạng ảnh
bitmap độc lập thiết bò (DIB: Device-Independent Bitmap) mà nó cho phép
Windows hiển thò ảnh bitmap trên bất kỳ thiết bò hiển thò nào. Thuật ngữ
“Device-Independent” có nghóa rằng ảnh bitmap chỉ rõ màu điểm trong một
dạng độc lập của phương pháp được sử dụng bởi một màn hình để đại diện
màu. Phần mở rộng tên file mặc đònh của tập tin DIB Windows là .BMP.

Cấu trúc file ảnh bitmap:
Mỗi file ảnh bitmap Windows bao gồm 4 phần sau:
- Tiêu đề file ảnh bitmap.
- Thông tin tiêu đề ảnh bitmap.
- Bảng màu.
- Mảng các byte mà nó chỉ rõ các bit của ảnh bitmap.
File có dạng như sau:
BITMAPFILEHEADER bmfh;
BITMAPINFOHEADER bmih;
RGBQUAD aColors[];0
BYTE aBitmapBits[];
SVTH: Nguyễn Văn Thành Trang 7
Thiết kế hệ thống nhập điểm tự động GVHD: Thầy Huỳnh Văn Đức
Chi tiết của cấu trúc file dạng BMP như sau:
OFFSET Count TYPE Description
0000h 2 char ID='BM' – BitMap OS/2 cũng hỗ trợ các
dạng sau đây:
ID='BA' – mảng bitmap (Bitmap Array)
ID='CI' – biểu tượng màu (Color Icon)
ID='CP' – con trỏ màu (Color Pointer) (mouse cursor)
ID='IC' – biểu tượng (Icon)
ID='PT' – con trỏ (Pointer) (mouse cursor)
0002h 1 dword kích thước của tập tin
0006h 4 byte không sử dụng
000Ah 1 dword khoảng trống trong file bitmap ="BOF"
000Eh 1 dword chiều dài của BitMapInfoHeader bắt đầu
trực tiếp sau phần tiêu đề này:
12 - theo đòng dạng của OS/2 1.x
40 - theo đòng dạng của Windows 3.x
64 - theo đòng dạng của OS/2 2.x

0012h 1 dword những điểm ảnh ngang trong file bitmap
0016h 1 dword những điểm ảnh đứng trong file bitmap
001Ah 1 word số mặt phẳng
001Ch 1 word số Bits trên pixel (như vậy, đó chính là số
màu) ="BPP"
001Eh 1 dword loại tập tin nén, có 3 loại nén khác nhau sau
đây:
0 - none
1 - RLE 8-bit/Pixel
2 - RLE 4-bit/Pixel
0022h 1 dword số ký tự trong bức ảnh
0026h 1 dword độ phân giải ngang của ảnh
002Ah 1 dword độ phân giải đứng của ảnh
002Ah 1 dword số màu được sử dụng
002Ah 1 dword số màu quan trọng
0036h ? rec đònh nghóa N màu
N=1 shl "BPP"
1 byte thành phần Blue
1 byte thành phần Green
1 byte thành phần Red
1 byte thành phần làm đầy
"BOF" ? byte dữ liệu ảnh
SVTH: Nguyễn Văn Thành Trang 8
Thiết kế hệ thống nhập điểm tự động GVHD: Thầy Huỳnh Văn Đức
Tiêu đề file ảnh bitmap chứa đựng thông tin về lọai file ảnh, tổng kích
thước của file ảnh, và cách trình bày một file ảnh bitmap thiết bò bất kỳ. Tiêu
đề được đònh nghóa như cấu trúc BITMAPFILEHEADER.
Thông tin tiêu đề ảnh bitmap, được đònh nghóa như một cấu trúc
BITMAPINFOHEADER. Chỉ rõ chiều rộng, chiều cao của ảnh, loại nén ảnh
(không nén, nén theo giải thuật RLE4 hay RLE8) và khuôn dạng màu cho ảnh

bitmap.
Bảng màu, được đònh nghóa như một mảng các cấu trúc RGBQUAD bao
gồm nhiều phần thử có màu trong ảnh bitmap. Bảng màu không hiện hữu cho
ảnh bitmap với 24bits màu vì mỗi điểm được đại diện bởi các giá trò của 24 bit
màu đỏ-xanh lục-xanh dương(RGB) trong vùng dữ liệu thật sự của ảnh bitmap.
Những màu trong bảng màu xuất hiện theo thứ tự quan trọng. Điều này trả lại
bộ phận điều khiển hiển thò ảnh bitmap trên một thiết bò hiển thò không được
nhiều màu trong một ảnh bitmap.
Cấu trúc BITMAPINFOHEADER có thể được dùng để đại diện cho sự
kết hợp giữa thông tin tiêu đề file bitmap và bảng màu. Những bit ảnh bitmap
trực tiếp theo sau bảng màu, bao gồm mảng các giá trò BYTE đại diện cho các
dòng liên tục nhau, “dòng quét” của ảnh bitmap. Mỗi dòng quét bao gồm các
byte liên tục nhau đại diện cho các điểm ảnh trên dòng quét từ trái qua phải.
Thứ tự các byte đại diện cho một dòng quét phụ thuộc vào khuôn dạng màu và
chiều rộng tính bằng pixel của ảnh bitmap.
Cấu trúc BITMAPINFOHEADER xác đònh số bit được đònh nghóa trong
mỗi pixel và số màu lớn nhất trong ảnh bitmap. Có thể có những giá trò sau
đây:
1 – Là ảnh bitmap chỉ có một màu và bảng màu chứa hai mục. Mỗi bit
trong một mảng của ảnh bitmap đại diện cho một pixel. Nếu bit bò xóa (không
được thiết lập), thì pixel được hiển thò với màu của mục đầu tiên trong bảng
màu. Nếu bit được thiết lập, thì pixel được hiển thò với màu của mục thứ hau
trong bảng màu.
4 – Là ảnh bitmap có tối đa 16 màu. Mỗi pixel trong ảnh bitmap được
biểu thò bằng một chỉ số 4 bit màu bên trong bảng màu. Chẳng hạn, nếu byte
đầu tiên trong ảnh bitmap là 0x1F thì byte đại diện cho hai pixel. Pixel đầu tiên
chứa màu trong mục thứ hai của bảng màu và pixel thứ hai chứa màu trong
mục thứ 16 của bảng màu.
8 – Là ảnh bitmap có tối đa 256 màu. Mỗi pixel trong ảnh bitmap được
biểu thò bằng một chỉ số 1 byte bên trong bảng màu. Chẳng hạn, nếu byte đầu

tiên trong ảnh bitmap là 0x1F thì pixel đầu tiên có màu của mục thứ 32 trong
bảng màu.
24 – Là ảnh bitmap có tối đa 16777216 màu. Mỗi 3-byte theo thứ tự
mảng trong ảnh bitmap đại diện cho cường độ tương đối của 3 màu đỏ, xanh,
xanh dương theo thứ tự đònh sẳn trong một pixel.
Số màu thực sự trong bảng màu được sử dụng trong ảnh bitmap.
SVTH: Nguyễn Văn Thành Trang 9
Thiết kế hệ thống nhập điểm tự động GVHD: Thầy Huỳnh Văn Đức
Một điều đặc biệt nhất về các ảnh bitmap của Windows là các byte
được lưu trữ từ bên trên xuống dưới. Dòng cuối cùng trong ảnh bitmap sẽ được
lưu trữ đầu tiên, còn dòng đầu tiên sẽ được lưu trữ cuối cùng.
Các giải thuật nén ảnh bitmap:
Phiên bản 3.0 của Windows và các bản về sau này hỗ trợ đònh dạng
RLE(Run-Length Encoded) để nén ảnh bitmap mà sử dụng 4 bit trên pixel và 8
bit trên pixel. Nén làm giảm dung lượng của đóa cứng và bộ nhớ khi phải lưu
trữ cho một ảnh bitmap. Nếu loại nén trong thông tin tiêu đề file bitmap là 0 thì
nén không được sử dụng, nếu loại nén là 1 thì ảnh sử dụng giải thuật nén là
RLE8 còn nếu loại nén là 2 thì ảnh sử dụng loại nén là RLE4.
Nén ảnh bitmap 8 bit trên pixel:
Là loại nén cho một ảnh có 256 màu. Đònh dạng này sử dụng 2
chế độ: chế độ mã hóa và chế độ tuyệt đối. Cả 2 chế độ có thể xuất hiện bất
cứ nơi nào khắp cả một ảnh bitmap đơn.
a. Chế độ mã hóa:
Một đơn vò thông tin bên trong chế độ mã hóa bao gồm có 2 byte.
Byte đầu tiên chỉ rõ số những pixel liên tục nhau để vẽ sử dụng chỉ số màu
được chứa trong byte số 2. Byte đầu tiên trong 2 byte có thể thiết lập về 0 để
thóat khỏi sự chỉ đònh mà chỉ rõ là cuối của một dòng, cuối một ảnh bitmap hay
một vùng nào đó. Giải thích về việc kết thúc phụ thuộc vào giá trò trong byte
thứ 2 trong 2 byte, mà chỉ cho phép giới hạn trong khoảng 0x00 đến 0x02. Sau
đây giải thích cho giá trò kết thúc mà có thể được sử dụng trong byte thứ 2.

b. Chế độ
tuyệt đối:
Trong chế độ tuyệt đối có một điểm đáng chú ý là byte đầu tiên
trong một cặp được thiết lặp bằng 0 và byte thứ 2 có giá trò trong khỏang 0x03
đến 0xFF. Byte thứ 2 đại diện cho số byte theo sau, mỗi byte theo sau chứa chỉ
số màu của một điểm ảnh đơn. Mỗi lần thực thi nó phải canh chỉnh lại biên của
một từ.
Nén ảnh bitmap 4 bit trên pixel:
Tương tự như phần nén ảnh bitmap 8 bit trên pixel chỉ có khác là
sử dụng giải thuật nén cho ảnh bitmap có 16 màu.
1. Chế độ mã hóa:
Một đơn vò thông tin bên trong chế độ mã hóa bao gồm có 2 byte.
Byte đầu tiên chỉ rõ số những pixel liên tục nhau để vẽ sử dụng chỉ số màu
được chứa trong byte số 2. Byte thứ 2 chứa chỉ số của 2 màu, một màu trong 2
màu lấy thứ tự cao và màu còn lại lấy thứ tự thấp.
2. Chế độ tuyệt đối:
SVTH: Nguyễn Văn Thành Trang 10
Byte thứ 2 Ý nghóa
0 Cuối dòng
1 Cuối ảnh bitmap
2 Trong một vùng nào đó
Thiết kế hệ thống nhập điểm tự động GVHD: Thầy Huỳnh Văn Đức
Trong chế độ tuyệt đối, byte đầu tiên chứ số 0, byte thứ 2 chứa chỉ số
của màu và byte theo sau chứa chỉ số màu lấy thứ tự cao và thấp bên trong nó,
mỗi chỉ số màu cho mỗi pixel. Mỗi lần thực thi nó phải canh chỉnh lại biên của
một từ.
1.1.2. Đònh dạng file ảnh JPEG/JPG:
Chuẩn ảnh theo dạng JPEG/JPG là một chuẩn nén ảnh có sự mất mát dữ
liệu (nhưng có hiệu quả: kích thước tập tin nhỏ hơn rất nhiều so với tập tin dạng
BMP, chất lượng ảnh cũng không thay đổi nhiều, nên nó hay được sử dụng

nhiều trên Web và những việc xử lý ảnh hiện nay).
Cấu trúc đònh dạng của một khối JPEG (tất cả dữ liệu đều nằm trong
byte Motorola):
OFFSET Sốbyte Loại Mô tả
0000h 1 word Block ID
0FFD8h - JPEG ký hiệu khối (4 chars="JFIF")
0FFC0h - JPEG thông tin về màu
0FFC1h - JPEG thông tin về màu
0002h 1 word kích thước byte trong khối,
không tính ID word.
Thông tin màu của đònh dạng JPEG (thứ tự byte Motorola) :
OFFSET Sốbyte Loại Mô tả
0000h 1 byte 1 = ảnh xám
0001h 1 word chiều cao
0003h 1 word chiều rộng
1.1.3. Đònh dạng file ảnh TIFF (Tag Image File Format):
Là một thẻ được dựa trên đònh dạng file mà được thiết kế để đẩy mạnh
việc thay đổi dữ liệu ảnh kỹ thuật số.
Kòch bản tổng quát của loại ảnh TIFF được phát minh với giả thuyết
rằng những ứng dụng phần mềm cho việc quét và vẽ ảnh tạo ra một file theo
dạng TIFF, mà sau đó có thể đọc và hợp nhất vào trong một tài liệu hoặc công
bố bởi một ứng dụng như một gói chế bản điện tử.
Chủ ý của TIFF sẽ tổ chức và lập điều lệ thực hành hiện hữu đối với
đònh nghóa và cách dùng được thiết kế sao cho dữ liệu số gọn nhẹ, không lan
rộng ra những hướng đi mới hoặc đẩy mạnh những kỹ thuật chưa được chứng
minh. Vậy mà một quyền ưu tiên rất cao được đưa ra cho một cấu trúc dữ liệu
bên trong một cách như vậy như việc làm giảm bớt đi nổi khó nhọc, mất công
sức cho việc thêm vào sau này. TIFF được thiết kế là một khuôn dạng cho sự
trao đổi rất dễ mở rộng sau này.
Mặt dù TIFF đòi hỏi trong một hướng nào đó một giàu đònh dạng, nó có

thể dễ dàng sử dụng cho những scanner và những ứng dụng đơn giản nữa, một
SVTH: Nguyễn Văn Thành Trang 11
Thiết kế hệ thống nhập điểm tự động GVHD: Thầy Huỳnh Văn Đức
khi người phát triển ứng dụng cần chỉ được quan tâm với những khả năng mà
anh ta yêu cầu.
TIFF được dự đònh độc lập cho những hệ điều hành đặc biệt, sắp xếp
những hệ thống, những trình biên dòch và những bộ xử lý. Chỉ có ý nghóa giả
thiết rằng môi trường lưu trữ khỏang chừng một file được đònh nghóa theo thứ tự
bytes 8 bit. Nơi mà bytes ghi số từ 0 đến N. File TIFF có thể lớn nhất là 2*32
bytes. Vì những con trỏ được sử dụng tự do nên một file TIFF hầu như đọc dễ
dàng từ một thiết bò truy cập ngẫu nhiên, mặc dầu nó có đọc và ghi file TIFF
trên phương tiện truyền thông liên tục như băng ghi âm.
Nhiều chương trình ứng dụng mà đọc những nội dung của file hình ảnh
TIFF sẽ không hỗ trợ tất cả các đặc tính mô tả trong tài liệu này. Trong vài
trường hợp những phương án chọn mặc đònh nhỏ bé hơn sẽ được hỗ trợ. Nó lên
trên tới mỗi tổ chức để xác đònh những giá và những lợi ích liên quan đến
những mức khác nhau của sự phù hợp. Bởi vậy những tuyên bố phù hợp với
thuyết minh này với số lượng nhắc nhở nhất đònh. Nó đi theo mà cách dùng của
thuyết minh này không loại trừ cho phối hợp giữa người viết ra file hình ảnh và
người đọc file hình ảnh. Chính lên trên tới người thiết kế ứng dụng mà đầu tiên
viết một file trong khuôn dạng này để xác minh mà những tùy chọn file mong
muốn được hỗ trợ bởi những ứng dụng mà sẽ đọc file.
Cấu trúc:
Trong file TIFF, những lónh vực riêng lẽ sẽ được xác đònh với một thẻ
duy nhất. Điều này cho phép những lónh vực đặc biệt hiện hữu và vắng mặt từ
file được yêu cầu bởi ứng dụng. Vài file TIFF sẽ chỉ có một ít lónh vực trong
chúng nhưng những loại file khác thì sẽ có nhiều lónh vực. Phần mềm mà tạo ra
những file TIFF cần phải viết ra trong nhiều lónh vực mà nó tin tưởng sẽ đầy ý
nghóa và hữu ích (và không hơn). Những phần mềm đọc file dạng TIFF sẽ là tốt
nhất với những lónh vực mà nó tìm thấy ở đó.

Chính cấu trúc TIFF không phải là đặc biệt cho những ứng dụng tạo ảnh
bên trong bất kỳ cách nào. Nó chỉ đònh nghóa trong những lónh vực mà cùng mô
tả một hình ảnh. Một hình ảnh được đònh nghóa là một mảng hình chữ nhật
những điểm, mỗi ảnh bao gồm một hay nhiều hơn một mẫu. Với dữ liệu đơn
sắc, chúng ta có một mẫu trên điểm, mẫu và điểm có thể được sử dụng để thay
thế cho nhau được. Với dữ liệu màu thông thường chứa 3 mẫu điểm, chẳng hạn
một sơ đồ RGB.
1.1.4. Đònh dạng file ảnh GIF (Graphices Interchange Format):
Ảnh GIF được tạo ra bởi công ty CompuServe như là một chuẩn cho
việc lưu trữ và chuyển đổi thông tin đồ họa được dựa trên đường quét, nghóa là
các hình ảnh. Một file ảnh GIF có thể chứa nhiều hình ảnh bên trong, mà được
hiển thò chồng lên và không có bất kỳ thời gian trì hoãn nào giữa các bức ảnh.
Bản thân dữ liệu theo dạng GIF được nén theo giải thuật LZW. Giải thuật LZW
được phát minh bởi UniSys và kể từ tháng 1/1995 là thành viên của
SVTH: Nguyễn Văn Thành Trang 12
Thiết kế hệ thống nhập điểm tự động GVHD: Thầy Huỳnh Văn Đức
CompuServe. File ảnh GIF bao gồm các thông tin tiêu đề chung, một hoặc
nhiều hơn khối ảnh và không bắt buộc phải có phần mở rộng (phần đuôi) là
GIF.
OFFSET Count TYPE Description
0000h 6 char ID='GIF87a', ID='GIF89a'
Số ID này được xem như một số version
0006h 1 word chiều rộng ảnh
0008h 1 word chiều cao ảnh
000Ah 1 byte bit được ánh xạ
0-2 - bits per pixel -1
3 - không sử dụng
4-6 - các bit màu
7 - bảng màu chung cho phép mô tả
ảnh

000Bh 1 byte chỉ số màu của màm hình nền
000Ch 1 byte không sử dụng
Màu chung ánh xạ tức thì cho phép miêu tả màn hình và có kích thước
(2*bit/pixel) và có chế độ màu RGB cho mỗi chỉ số màu, số 0 là không có màu
còn số 255 là số màu tối đa (cường độ màu tối đa). Các byte được lưu trữ theo
đònh dạng sau đây:
OFFSET Số byte Loại Mô tả
0000h 1 byte thành phần Red
0001h 1 byte thành phần Green
0002h 1 byte thành phần Blue
Sau hình ảnh đầu tiên, có thể có nhiều ảnh được gắn thêm vào bên trong
file, mà nó được chồng lên hình ảnh đầu tiên hoặc một phần của ảnh đầu tiên.
Bộ mô tả ảnh đònh nghóa nơi đặt thật sự và phạm vi cho phép ảnh bên trong
dấu cách được đònh nghóa bên trong bộ mô tả màn hình. Bộ mô tả ảnh được đưa
vào bằng một ký tự phân cách ảnh. Vai trò của bộ tách ảnh thường là cung cấp
mộ ký tự đồng bộ để đưa vào một bộ mô tả ảnh, ký tự phân chia các ảnh được
đònh nghóa là dấu phẩy, có mã là 02Ch. Bất kỳ các ký tự đụng nhau phần cuối
của ảnh trước và ký tự phân cách ảnh được bỏ qua.
Đònh dạng của bộ mô tả ảnh trông giống như sau:
OFFSET Số byte Loại Mô tả
0000h 1 char bộ phân tách ảnh
ID=','
0001h 1 word đoạn bên trái ảnh
0003h 1 word đoạn trên ảnh
0005h 1 word chiều rộng ảnh
0007h 1 word chiều cao ảnh
SVTH: Nguyễn Văn Thành Trang 13
Thiết kế hệ thống nhập điểm tự động GVHD: Thầy Huỳnh Văn Đức
0009h 1 byte mô tả bảng màu bitmapped
0-2 – số bit.pixel-1

3-5 – không sử dụng (0)
6 – ảnh đan xen/tuần tự
7 – màu ánh xạ cục bộ/toàn cục, bỏ qua bit 0-2
1.2. CÁC PHÉP BIẾN ĐỔI TRONG ĐỒ HỌA HAI CHIỀU:
Một trong những ưu điểm quan trọng của đồ họa là cho phép dễ dàng
thao tác lên các đối tượng đã được tạo ra. Một nhà quản lí có nhu cầu thu nhỏ
các biểu đồ trong một báo cáo, một kiến trúc sư muốn nhìn tòa nhà ở những
góc nhìn khác nhau, một nhà thiết kế muốn quan sát và chỉnh sữa các mẫu đối
tượng trong quá trình thiết kế, Tất cả các thao tác này có thể được hỗ trợ một
cách dễ dàng nhờ vào các phép biến đổi hình học. Các phép biến đổi hình học
sẽ làm thay đổi về tọa độ của các đối tượng, từ đó làm cho đối tượng bò thay
đổi về hướng, kích thước và hình dạng. Các phép biến đổi hình học cơ sở bao
gồm : tònh tiến {translation}, quay {rotation} và biến đổi tỉ lệ {scaling}. Ngoài
ra một số phép biến đổi khác cũng thường được áp dụng đó là phép đối xứng
{reflection} và biến dạng {shearing}.
Có hai quan điểm về phép biến đổi hình học đó là: biến đổi đối tượng
(object transformation) và biến đổi hệ tọa độ (coordinate transformation). Biến
đổi đối tượng là thay đổi tọa độ của các điểm mô tả nó theo một quy tắc nào
đó.
Còn biến đổi hệ tọa độ là tạo ra một hệ tọa độ mới và tất cả các điểm
mô tả đối tượng sẽ đượng chuyển về hệ tọa độ mới. Hai các này có những mối
liên hệ chặt chẽ với nhau và mỗi cách có những lợi thế riêng.
1.2.1. Các phép biến đổi hình học cơ sở:
Một phép biến đổi hai chiều sẽ biến đổi điểm P trong mặt phẳng thành
điểm có tọa độ mới Q theo một quy luật nào đó. Về mặt bản chất, một phép
biến đổi điểm là một ánh xạ T được đònh nghóa:
T: R
2
->R
2

P(x,y)->Q(x’,y’)
Nói cách khác, T là hàm số T(x,y) theo hai biến (x,y):



=
=
),('
),('
yxgy
yxfx
Phép biến đổi affine là phép biến đổi với f(x,y) và g(x,y) là các hàm
tuyến tính. Phép biến đổi này có dạng:



++=
++=
fdybxy
ecyaxx
'
'
,a,b,c,d,e,f ∈ R, ad-bc≠0
Phép tònh tiến:
SVTH: Nguyễn Văn Thành Trang 14
Thiết kế hệ thống nhập điểm tự động GVHD: Thầy Huỳnh Văn Đức
Để tònh tiến một điểm P(x,y) từ vò trí này sang vò trí khác trong mặt
phẳng, ta cộng thêm các giá trò mô tả độ dời vào các tọa độ của P. Nếu gọi tr
x
và tr

y
lần lượt là độ dời theo trục hòanh và trục tung thì tọa độ của điểm mới
Q(x’,y’) sẽ là:



+=
+=
tryyy
trxxx
'
'
(tr
x
,tr
y
) là còn được gọi là vector tònh tiến hay vector độ dời.
Chúng ta có thể dòch chuyển toàn bộ một đối tượng bằng cách áp dụng
quy tắc trên cho mọi điểm thuộc đối tượng. Để tònh tiến một đoạn thẳng, đơn
giản ta chỉ cần tònh tiến hai điểm đầu và cuối của nó rồi sau đó vẽ lại đọan
thẳng nối hai điểm mới. Với đa giác, ta tònh tiến các đỉnh của nó sau đó vẽ lại
đa giác với các đỉnh mới. Một cách tương tự, để tònh tiến các đối tượng như
đường tròn, ellipse, ta tònh tiến tâm của chúng tới vò trí mới rồi vẽ lại.
y y
Q
tr
y
P tr
x
x x

Phép quay:
Phép quay làm thay đổi hướng của đối tượng. Một phép quay đòi hỏi
phải ó tâm quay và góc quay. Góc quay dương thường được qui ước là chiều
ngược chiều kim đồng hồ. Ta có công thức biến đổi của phép quay P(x,y)
quanh gốc tọa độ một góc α.



+=
−=
yxy
yxx
.cos.sin'
.sin.cos'
αα
αα
1.2.2. Một số tính chất của phép biến đổi Affine:
1.2.2.1. Phép biến đổi affine bảo toàn đường thẳng:
nh của đường thẳng qua phép biến đổi affine là đường thẳng.
Thật vậy, ta có phương trình tham số của đường thẳng qua hai điểm A, B là:
P(t) = (1-t)A + tB.Q(t) các điểm nhận được sau phép biến đổi M.
Q(t) = P(t)M = [(1-t)A + tB]M = (1-t)AM + tBM
Nếu gọi A’, B’ lần lượt là ảnh của A, B qua phép biến đổi M, ta sẽ có
A’ = AM, B’ = BM. Lúc này Q(t) = (1-t)A’ + tB’. Đây chính là dạng của
chương trình tham số đoạn thẳng qua A’, B’.
SVTH: Nguyễn Văn Thành Trang 15
Thiết kế hệ thống nhập điểm tự động GVHD: Thầy Huỳnh Văn Đức
Từ kế quả trên, để biến đổi một đoạn thẳng đi qua hai điểm A và B, ta
chỉ cần áp dụng phép biến đổi cho hai điểm A, B rồi vẽ lại đoạn thẳng qua hai
điểm mới.

1.2.2.2. Tính song song của các đường thẳng được bảo toàn:
nh của hai đường thẳng song song là hai đường song song.
Chúng ta có thể viết lại phương trình tham số của đường thẳng dưới
dạng tia xuất phát từ A ứng với t = 0 và theo phương β = B – A như sau: A + βt.
Lúc này ta biểu diễn hai đường thẳng song song dưới dạng tia: L
1
(t) = A
1
+ βt
và L
2
(t) = A
2
+ βt có cùng phương βt nhưng xuất phát từ hai điểm khác nhau.
Lúc này áp dụng phép biến đổi lên hai đường thẳng song song này, dễ dàng
nhận ra ảnh của chúng sẽ có phương βM nên chúng song song.
Một hệ quả quan trọng của tính chất này đó là ảnh của các hình bình
hành.
1.2.2.3. Tính tỉ lệ về khoảng cách được bảo toàn:
Giả sử C là điểm chia đoạn AB theo tỉ số t. Nếu A’, B’, C’ lần lượt là
ảnh A, B, C qua phép biến đổi thì C’ cũng sẽ chia A’B’ theo tỉ số t.
Trong trường hợp đặt biệt, nếu C là trung điểm của AB thì C’ cũng là
trung điểm của A’B’, từ đó ta có thể suy ra một số tính chất sau:
 Trong hình vuông, các đường chéo cắt nhau tại trung điểm của
mỗi đường nên các đường chéo của bất kỳ hình bình hành nào
cũng cắt nhau tại trung điểm của mỗi đường.
 Trong tam giác đều, giao điểm của ba đường trung tuyến chia
mỗi đường theo tỉ số 1:2. Mặt khác, một tam giác bất kỳ là ảnh
của tam giác đều qua phép biến đổi affine,nên giao điểm của các
đường trung tuyến của nó cũng sẽ chia chúng theo tỉ lệ 1:2.

1.2.3. Một số phép biến đổi khác:
1.2.3.1. Phép đối xứng:
Phép đối xứng trục có thể xem là phép quay quanh trục đối xứng một
góc 108
0
. Nếu trục đối xứng là trục hoành hay trục tung, chúng ta có thể biễu
diễn của phép đối xứng qua trục hoành, trục tung lần lượt là:
M
Rfx
=





0
0
1

0
1
0







1

0
0
, M
Rfy
=






0
0
1

0
1
0






1
0
0

1.2.3.2. Phép biến dạng:
Phép biến dạng là phép biến đổi làm thay đổi, méo mó hình dạng của

đối tượng. Hai dạng phép biến dạng thường gặp đó là biến dạng theo phương
trục x và biến dạng theo phương trục y bằng cách thay đổi tọa độ (x,y) của
điểm ban đầu theo cách sau:
SVTH: Nguyễn Văn Thành Trang 16
Thiết kế hệ thống nhập điểm tự động GVHD: Thầy Huỳnh Văn Đức
 Biến dạng theo phương trục trục x sẽ làm thay đổi hoành độ còn
tung độ vẫn giữ nguyên:
M
Shx
=





0
1
shxy

0
1
0






1
0

0

 Biến dạng theo phương trục y sẽ làm thay đổi tung độ còn hoành
độ vẫn giữ nguyên:
M
Shy
=





0
0
1

0
1
shyx






1
0
0

shxy và shyx lần lượt được gọi là các hệ số biến dạng.

SVTH: Nguyễn Văn Thành Trang 17
Thiết kế hệ thống nhập điểm tự động GVHD: Thầy Huỳnh Văn Đức
CHƯƠNG 2:
NHẬN DẠNG CÁC CHẤM ĐEN
phần này em chỉ trình bày việc nhận dạng các chấm đen (hai mốc và
điểm thi), còn các phần liên quan đến phần xử lý này sẽ được bạn Trần Viết
Khôi trình bày một cách đầy đủ.
2.1. XÁC ĐỊNH HAI MỐC CỦA FILE BẢNG ĐIỂM:
Do bảng điểm có kích thước rất lớn, nếu ta kiểm tra tất cả các phần trên
ảnh để tìm ra mốc thì chương trình của ta sẽ phải đọc ảnh rất nhiều để tìm dẫn
đến chương trình có thể sẽ thực thi rất chậm và không ổn đònh. Mà trên thực tế
thì chỉ có một khoảng các pixel là có khả năng có mốc. Đó là lý do ta phải xác
đònh khoảng các pixelcó mốc.
Vấn đề là làm sao xác đònh được chính xác tâm của điểm mốc. Muốn
xác đònh chính xác tâm của điểm mốc ta phải biết được chính xác khoảng pixel
có thể xuất hiện mốc, và phải xác đònh khoảng pixel đó nằm ở đâu trên bức
ảnh. Như ta đã biết ở trên bảng điểm có hai mốc nằm ở vò trí trái trên và phải
dưới của bảng điểm nhưng khi scan cho ra file ảnh điểm thì do ảnh có thể bò
tònh tiến, bò quay nên do đó điểm mốc cũng không nằm tại một vò trí cố đònh
mà nó sẽ nằm ở vò trí tuỳ thuộc vào ảnh bò quay bao nhiêu và tònh tiến bao
nhiêu. Vấn đề ở đây là ta phải tìm ra được những vò trí nào mà mốc xuất hiện
khi ảnh quay và tònh tiến trong khả năng bài toán cho phép.
Để giải quyết vấn đề trên ta phải qua thực nghiệm đối với mọi khả năng
có thể xảy ra đối với bài toán để tìm ra được khoảng pixel để xác đònh được
mốc. Qua thực nghiệm tính được khoảng pixel có khả năng xác đònh được mốc
thứ nhất là nằm trong khoảng (0,0) đến (200,200) và mốc thứ hai nằm trong
khoảng ((chiều rộng của ảnh) - 200, (tâm của mốc thứ nhất) + 743) đến ((chiều
rộng của ảnh), (tâm của mốc thứ nhất) + 743 + 200).
2.1.1. Giải pháp để xác đònh tâm của một mốc:
Giải pháp để xác đònh tâm của một mốc được mô tả như sau:

 Tìm tuần tự trên phần ảnh có mốc, nếu phát hiện ra pixel (điểm)
đen thì dừng lại và kiểm tra xem điểm đen đó có thuộc mốc hay
không nếu có thì xác đònh tâm của mốc và ngưng việc tìm mốc,
nếu không phải là mốc thì tiếp tục tìm điểm đen trên phần ảnh
đó.
 Có hai phương pháp để thực hiện việc kiểm tra một điểm đen có
thuộc mốc hay không được mô tả như sau:
Giải pháp 1: Phương pháp quét hình chữ thập
Khi ta phát hiện ra một pixel đen, từ pixel đen đó ta quét ngang
tìm xem trên dòng pixel đen đó có bao nhiêu pixel đen, sau đó ta lấy pixel đen
SVTH: Nguyễn Văn Thành Trang 18
Thiết kế hệ thống nhập điểm tự động GVHD: Thầy Huỳnh Văn Đức
ở giữa các pixel đen quét theo cột để tìm xem trên cột đó có bao nhiêu pixel
đen nếu số pixel đen trên cột đó nằm trong khoảng từ 12 đến 14 pixel thì ta
mới tiếp tục công việc kiểm tra, sau đó lấy điểm giữa của các pixel trên trên
cột đó và tiếp tục quét ngang qua hai bên để tìm số pixel đen ở hai bên nếu số
pixel đen ngang đạt được từ 12 dến 14 pixel thì dừng và khẳng đònh các pixel
đen ở trên là các pixel thuộc mốc, từ đó ta suy ra tâm của điểm đen là điểm
giữa của dòng và cột.
Giải pháp này có một ưu điểm là số lần kiểm tra một pixel đen
có thuộc mốc rất ít dó đó chương trình sẽ kiểm tra rất nhanh, nhưng nó có một
khuyết điểm là rất dễ dẫn đến sai lầm trong việc nhận dạng mốc do trong ảnh
điểm có rất nhiều thứ thoả mãn với cách quét hình chữ thập.
Giải pháp 2: Phương pháp quét đóng khung
Khi ta phát hiện ra điểm đen, thì từ pixel đen đó ta sẽ quét theo
hàng ngang 14 pixel tìm xem trên dòng pixel đen đó có bao nhiêu pixel đen,
sau đó ta dung một công thức sau để tính biên đặt khung quét:
tọa độ x của chấm đen = tọa độ x của chấm đen – (14 – số
pixel đen trên dòng đó) / 2
Sau khi biết được biên để đặt khung (khung có chiều rộng 14 pixel

và chiều ngang 14 pixel) ta tiến hành quét trong khung lần lượt từ trên xuống
để tìm tổng số điểm đen, sau khi quét hết khung ta tiến hành kiểm tra tổng số
pixel trong khung đó, nếu tổng số pixel đen trong khung đạt được từ 100 đến
196 pixel đen thì ta xác đònh pixel đen đó là pixel đen của mốc. Sau đó ta tiến
hành xác đònh tâm của mốc và ngưng việc kiểm tra.
Giải pháp này có một ưu điểm là nó xác đònh pixel đen thuộc mốc
rất chính xác và ít khi bò lầm lẫn trong việc nhận dạng, nhưng nó có một khuyết
điểm là nó phải kiểm tra quá nhiều điểm mới xác nhận được một pixel đen có
thuộc mốc hay không. Ta cũng có thể khắc phục được phần nào giải pháp này
bằng cách tạo thêm một số điều kiện để loại trừ những pixel đen không thuộc
mốc.
Như vậy, trong hai giải pháp trên ta nhận thấy giải pháp một rất
phức tạp mà độ chính xác cũng không cao do nó rất dễ kiểm tra nhầm lẫn mốc
mà chương trình của ta đòi hỏi việc xác đònh mốc phải chính xác. Còn giải
pháp thứ hai thì tương đối chính xác hơn nhưng chương trình sẽ phải xử lý nhiều
hơn. Do những ưu khuyết điểm của hai giải pháp trên ta thấy việc chọn giải
pháp thứ nhất là không khả thi do đó ta sẽ chọn giải pháp thứ hai để giải quyết
vấn đề nhận dạng mốc của bài toán này.
2.2.2. Xây dựng giải thuật :
Giải thuật chia làm hai phần: phần đầu là xác đònh mốc trong một
khoảng các pixel và phần hai xác đònh một pixel đen có thuộc một mốc hay
không. Giải thuật được mô tả như sau:
SVTH: Nguyễn Văn Thành Trang 19
Thiết kế hệ thống nhập điểm tự động GVHD: Thầy Huỳnh Văn Đức
Xác đònh một pixel đen có thuộc một mốc:
Bước 1: Vòng lặp để kiểm tra 14 pixel trên hàng dọc của pixel đen
và vò trí kiểm tra phải nhỏ hơn chiều cao. Nếu đúng nhảy xuống
bước 2, nếu không nhảy xuống bước 5.
Bước 2: Vòng lặp để kiểm tra 14 pixel trên hàng ngang của pixel đen
và vò trí kiểm tra phải nhỏ hơn chiều rộng. Nếu đúng thì nhảy xuống

bước 3 nếu không thì nhảy tới bước 4.
Bước 3: Kiểm tra pixel đen tai vò trí trên nếu là pixel đen thì tăng số
pixel đen tìm được lên một.
Bước 4: Kiểm tra nếu i = 0 thì xcd -= (14-chamden) / 2
 Kiểm tra nếu số chấm đen trên một dòng bằng 0 và chỉ mới
kiểm tra dưới 3 dòng thì xác đònh đây không phải là mốc và
thoát khỏi chương trình.
 Kiểm tra nếu số chấm đen trên một dòng bằng 0 và đã quét
được 4 dòng trở lên thì ngưng quét và nhảy xuống bước 5.
Tính tổng số pixel trên và nhảy về bước 1.
Bước 5: Kiểm tra xem tổng số pixel đen có đạt đến trọng số điểm
mốc hay không nếu có thì tính toạ độ tâm của mốc và trả về mốc.
Nếu không thì thoát.
Xác đònh mốc trong một khoảng điểm :
Bước 1: Đi từ trên xuống trong khoảng các pixel cho trước.
Bước 2: Đi từ trái qua phải trong khoảng các pixel cho trước.
Bước 3: Nếu phát hiện pixel đen thì thực hiện việc kiểm tra (thông
qua hàm kiểm tra) xem pixel đen đó có thuộc mốc hay không:
_ Nếu có thì lấy tâm của mốc và thoát.
_ Nếu không thì quay lại bước 1, bước 2.
Trả ra một mốc nếu có mốc.
2.2. XÁC ĐỊNH CÁC ĐIỂM THI:
Do bảng điểm có 30 sinh viên và 11 cột điểm dẫn đến khoảng các pixel
mà chứa các điểm này thì rất lớn, do đó ta không thể nào đọc một lần hết
khoảng các pixel đó vào bộ nhớ để xử lý. Cho nên ta phải chia nhỏ khoảng các
pixel đó ra thành các khoảng nhỏ hơn, mỗi khoảng chứa 6 sinh viên dẫn đến ta
xử lý 5 lần khoảng các pixel nhỏ đó để tìm ra các điểm cùng với vò trí tương
ứng của điểm đó.
SVTH: Nguyễn Văn Thành Trang 20
Thiết kế hệ thống nhập điểm tự động GVHD: Thầy Huỳnh Văn Đức

(phần) ảnh không bò quay hay lệch
Do file ảnh điểm là một sản phẩm thủ công như đã nói ở trên dẫn đến
khả năng ảnh có thể bò lệch và quay theo nhiều hướng khác nhau. Do đó nếu ta
đọc phần ảnh như trên thì có khả năng khi ảnh bò quay các ô điểm ở vò trí 0
hoặc 10 và các thí sinh nằm ở vò trí số 1 hoặc số 6 có thể không rơi vào trong
phần xử lý điểm của chương trình dẫn đến ta có thể nhận dạng thiếu hoặc sai
các vò trí đó.
(phần) ảnh bò quay
Để khắc phục được điều này ta đưa ra giải pháp là đọc khoảng các pixel
lớn hơn, nghóa là sẽ đọc rộng hơn 24 pixel (đọc thêm hai dòng) thì ta có thể đọc
được toàn bộ thông tin của phần ảnh bò quay với một góc quay nhỏ.
Nhưng nếu ảnh bò quay một góc lớn (3 đến 6 độ) thì những phần ảnh
càng về sau càng bò lệch và khả năng lệch đó có thể làm mất các điểm và vò trí
ở biên. Để khắc phục điều này ta phải tính độ dời theo hai trục khi ảnh bò quay.
Xác đònh điểm trong một khoảng các pixel cho trước:
Bước 1: Đi từ trên xuống trong khoảng các pixel cho trước.
Bước 2: Đi từ trái qua phải trong khoảng các pixel cho trước.
Bước 3: Nếu phát hiện pixel đen thì thực hiện việc kiểm tra (thông
qua hàm kiểm tra) xem pixel đen đó có thuộc mốc hay không:
_ Nếu có thì lấy tâm của mốc và thoát.
_ Nếu không thì quay lại bước 1, bước 2.
Trả ra số điểm mà nó nhận diện được.
Sau khi có được số điểm đó nó sẽ thực hiện việc tính điểm cho từng
điểm mà nó nhận dạng được.
SVTH: Nguyễn Văn Thành Trang 21
Thiết kế hệ thống nhập điểm tự động GVHD: Thầy Huỳnh Văn Đức
Xác đònh vò trí và điểm tương ứng:
 Vòng lặp chạy từ 0 đến 10 (tương ứng với điểm từ 0 đến 10)
 Ta xác đònh khoảng pixel của từng điểm trên bảng điểm
 Nếu tâm của điểm đen đó nằm trong khoảng pixel tương ứng

với điểm đó thì điểm đen đó có điểm đó.
 Tính mỗi lần tương ứng với 6 vò trí do đó để tính vò trí cho cả
bảng điểm thì ta thực hiện 5 lần việc trên (5*6=30).
 Cũng tương tự như phần tính điểm ta cũng xem điểm đen đó
nằm trong khoảng pixel cho phần vò trí nào thì nó có vò trí đó.
Cụ thể như sau:
int TinhDiem(int x,int y,int solan,int xm,int ym,matrix T,int
&diem,int &vitri){
diem=-1;vitri=-1;
transform(x,y,T);
int xa=xm+412, ya=ym+140;
// tính điểm
for(int i=0;i<=10;i++){
if(x>=16*i+xa && x<=16*(i+1)+xa){
diem=i;
break;
}
}
// tinh vi tri
for(i=solan*6;i<solan*6+6;i++){
if(y>=23*i+ya && y<=23*(i+1)+ya){
vitri=i+1;
break;
}
}
if(diem != -1 && vitri != -1)
return 1;
return 0;
}
SVTH: Nguyễn Văn Thành Trang 22

Thiết kế hệ thống nhập điểm tự động GVHD: Thầy Huỳnh Văn Đức
CHƯƠNG 3:
PHÂN TÍCH BÀI TOÁN
3.1. ĐẶT VẤN ĐỀ:
Theo em được biết thì từ trước đến nay trên thực tế ở Việt Nam ta chưa
có một chương trình nào phục vụ cho việc nhập điểm tự động ở các trường phổ
thông cũng như các trường đại học. Đề 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ào cơ sở dữ liệu của
trường không phải nhập điểm bằng thủ công như trước đây, 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 …
3.2. GIỚI HẠN VẤN ĐỀ VÀ PHÁT BIỂU BÀI TOÁN:
3.2.1. 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 hay cô (phần ghi các điểm số), mã số của các thí sinh, các
môn học, kì thi, lớp học, … 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à 12 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 vì 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ự tương ứng của điểm đó trong
tờ 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ố trang (số tờ của bảng điểm),
môn học, lớp học tương ứng trên tờ bảng điểm thực. Do đó vấn đề ở đây là làm
sao nhận dạng được tâm của các điểm tô để đưa ra được điểm cùng số thứ tự.
3.2.2. 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 (có
thể là từng văn phòng sẽ tự nhập điểm cho riêng khoa mình). Người nhập điểm
sẽ lấy tờ bảng điểm đưa vào máy scan, máy scan sẽ scan 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ờ (trang), môn học, khoá học. Chương trình sẽ xử lý chỉnh sửa tờ bảng điểm
đó nếu nó không đúng như chuẩn ban đầu cho chương trình nhận dạng điểm đặt
ra. Sau khi qua bước xử lý sơ bộ những điều còn chưa đúng thì chương trình
nhận dạng sẽ cho ra một file điểm (file văn bản) và một file lỗi nếu trong quá
SVTH: Nguyễn Văn Thành Trang 23
Thiết kế hệ thống nhập điểm tự động GVHD: Thầy Huỳnh Văn Đức
trình xử lý có lỗi xảy ra (cũng là file text), file này sẽ được chương trình cấp
giao diện đọc và xử lý để lấy được điểm và số thứ tự tương ứng với tờ bảng
điểm thật và sau đó lưu vào cơ sở dữ liệu.
“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 cơ sở dữ liệu điểm và xem
điểm thi của sinh viên theo lớp học hay theo môn học.
3.3. MÔ TẢ DỮ LIỆU ĐẦU VÀO, ĐẦU RA VÀ PHẦN XỬ LÝ DỮ
LIỆU:
3.3.1. Dữ liệu đầu vào của chương trình:
• File điểm có điểm và số thứ tự.
• Có thể có file lỗi nếu chương trình thực hiện có lỗi xảy ra.
• Có sẳn cơ sở dữ liệu để thực hiện việc nhập điểm.
3.3.2. Dữ liệu đầu ra của chương trình:
• Điểm được cập nhật vào cơ sở dữ liệu.
• Có thể xem điểm của sinh viên theo môn hay theo lớp.
3.3.3. Phần xử lý dữ liệu:
• Có file bảng điểm để cho ra file điểm thông qua chương trình
nhận dạng điểm.
• Cần có số trang, môn học, lớp học được cung cấp từ người sử
dụng.

• Thực hiện câu truy vấn để đặt số thứ tự của sinh viên theo lớp
học.
• Thực hiện câu truy vấn để lấy được danh sách sinh viên từ số
thứ tự nào đến số thứ tự nào trong lớp theo số trang, môn học,
lớp học.
• Ta đưa điểm thi vào danh sách trên theo thứ tự đã có vào một
bảng tạm.
• Ta lưu dữ liệu từ bảng tạm vào cơ sở dữ liệu chính.
3.4. GIỚI THIỆU SƠ LƯC VỀ TỜ BẢNG ĐIỂM VÀ FILE BẢNG
ĐIỂM:
Một bảng điểm sẽ theo một mẫu quy đònh (có khổ giấy là tờ A4) khi đưa
vào máy scan sẽ cho ra một file ảnh bitmap, file ảnh này được chương trình đọc
và xử lý sau đó chương trình cho ra 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ó lỗi xảy ra. Sau đó một chương trình xử lý để lưu điểm
vào cơ sở dữ liệu, 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 cơ sở dữ liệu. Dưới đây là sự mô tả các dữ liệu
trên.
SVTH: Nguyễn Văn Thành Trang 24
Thiết kế hệ thống nhập điểm tự động GVHD: Thầy Huỳnh Văn Đức
3.4.1. Mô tả một tờ bảng điểm:
Tờ bảng điểm có màu chủ đạo là màu đỏ, các thông tin quan trọng trong
đó có phần tô điểm có màu đen hoặc xanh dương, bảng điểm gồm có 3 phần
chính: phần tựa, phần thân, phần cuối.
Dưới đây là file bảng điểm được scan giống như ảnh ban đầu chưa chỉnh
sửa gì cả:
SVTH: Nguyễn Văn Thành Trang 25

×