Tham số của phương thức Trong các ngôn ngữ lập trình thì tham số và đối mục được xem là như nhau, cũng tương tự khi đang nói về ngôn ngữ hướng đối tượng thì ta gọi một hàm là một phương
Trang 1LỜI CẢM ƠN
Đầu tiên em xin chân thành cảm ơn TS Phạm Đức Long - người đã trựctiếp hướng dẫn và định hướng giúp em có thể nhanh chóng tiếp cận, nắm bắtkiến thức và hoàn thành đề tài
Em xin gửi lời cảm ơn tới toàn thể thầy cô giáo khoa bộ môn Hệ thốngthông tin – trường Đại học công nghệ thông tin và truyền thông, đã tận tìnhgiảng dạy trang bị cho em những kiến thức quý báu trong những năm học vừaqua
Em xin gửi lời cảm ơn đến những người thân trong gia đình, bạn bè đãđộng viên và tạo mọi điều kiện giúp chúng em trong quá trình học tập cũngnhư trong cuộc sống
Mặc dù em đã cố gắng hoàn thành tốt đề tài nhưng cũng không thể tránhkhỏi những sai sót nhất định, rất mong được sự thông cảm và đóng góp ý kiếncủa thầy cô giáo và các bạn
Trang 2LỜI CAM ĐOAN
Em xin cam đoan nội dung đồ án của em không sao chép nội dung cơbản từ các đồ án khác và sản phẩm của đồ án là của chính bản thân em nghiêncứu xây dựng lên Mọi thông tin sai lệch em xin hoàn toàn chịu trách nhiệmtrước hội đồng bảo vệ
Sinh viênDương Thị Huệ
Trang 3MỤC LỤC
DANH MỤC HÌNH ẢNH
Trang 4LỜI NÓI ĐẦU
Trong thế kỉ XXI, thế kỷ của tin học và tự động hóa thì việc đấy mạnhứng dụng tin học vào các ứng dụng thực tiễn là một mục tiêu được nhà nướcquan tâm và phát triển Việc nắm bắt, khai thác và xử lí thông tin càng nhanh,càng chính xác, linh hoạt bao nhiêu thì con đường dẫn đến thành công càng gầnbấy nhiêu
Ứng dụng tin học trong sản xuất ở khâu kiểm tra là một vấn đề rất cầnthiết, nó nâng cao hiệu quả của việc kiểm tra, đánh giá kết quả sản phẩm Giúpcho con người giảm được khó khăn, tránh được sai sót trong quá trình kiểm trasản phẩm từ đó tiết kiệm được rất nhiều thời gian và chi phí Có rất nhiều côngnghệ được ứng dụng trong sản xuất công nghiệp trong đó công nghệ xử lý ảnhngày càng được quan tâm và ứng dụng rộng rãi Một trong những nhiệm vụ xử
lý ảnh khó khăn nhất đó là việc tạo ra các bức ảnh thích hợp cho việc kiểm tra các chi tiết khác nhau trên cùng một nền ảnh gốc Vấn đề xử lý ảnh là mấu chốt cho việc giải quyết những vướng mắc về việc kiểm tra lỗi sản phẩm cho ngành sản xuất tự động Vì vậy e đã chọn đề tài “Ứng dụng xử lý ảnh để kiểm tra sản phẩm trên dây chuyền đóng chai nước ngọt” với mục
đích xây dựng chương trình xử lý ảnh kiểm tra lỗi sản phẩm trên dây chuyềnđóng chai nước ngọt
Nội dung đề tài được thể hiện qua 3 chương:
Chương 1: Tổng quan
Chương 2: Xử lý ảnh và các phương pháp xử lý ảnh cơ bản
Chương 3: Ứng dụng xử lý ảnh phát hiện lỗi trong dây chuyền đóng chainước ngọt
Trang 5Chương 1: TỔNG QUAN 1.1 Giới thiệu chung về ngôn ngữ CSharp
Ngôn ngữ C# khá đơn giản, chỉ khoảng 80 từ khóa và hơn mười mấy kiểu
dữ liệu được xây dựng sẵn Tuy nhiên, ngôn ngữ C# có ý nghĩa cao khi nóthực thi những khái niệm lập trình hiện đại C# bao gồm tất cả những hỗ trợcho cấu trúc, thành phần component, lập trình hướng đối tượng Những tínhchất đó hiện diện trong một ngôn ngữ lập trình hiện đại Và ngôn ngữ C# hội
đủ những điều kiện như vậy, hơn nữa nó được xây dựng trên nền tảng của haingôn ngữ mạnh nhất là C++ và Java
C# có các đặc trưng sau:
• 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
Trang 6b. Sử dụng Micosoft Visual Studio để tạo trương trình
1.1.2 Biến, hằng, toán tử
a. Biến: Là một vùng lưu trữ ứng với một kiểu dữ liệu
Biến có thể được gán giá trị và cũng có thể thay đổi giá trị trong khi thựchiện các lệnh của chương trình
Khai báo: <kiể_dữ_liệu> <tên_biến> [=<giá trị>];
b. Hằng: Hằng cũng là một biến nhưng giá tri của hằng không thay đổi trongkhi thực hiện các lệnh của chương trình Hằng được phân thành 3 loại:
- Giá trị hằng(literal)
- Biểu tượng hằng(symbolic constants)
- Kiểu liệt kê(enumerations)
Khai báo: <const> <Kiểu_dữ_liệu> <tên_hằng>=<giá_trị>;
Hoặc: <enum> <tên_kiểu_liệt_kê>
Trang 7- Toán tử tăng / giảm: +=,-=,*=,/=,%=
- Toán tử tăng giảm 1 đơn vị:
++, - Toán tử gán: =
- Toán tử quan hệ: ==, !=, >, >=, <, <=
- Toán tử logic: !, &&, ||
- Toán tử 3 ngôi: (điều kiện)?(biểu_thức_1): (biểu_thức_2);
1.1.3 Xây dựng lớp, đối tượng
a Lớp
Để định nghĩa một kiểu dữ liệu mới hay một lớp đầu tiên phải khai báorồi sau đó mới định nghĩa các thuộc tính và phương thức của kiểu dữ liệu đó
Khai báo một lớp bằng cách sử dụng từ khoá class Cú pháp đầy đủ của khai
báo một lớp như sau:
[Thuộc tính] [Bổ sung truy cập] class <Định danh lớp> [: Lớp cơ sở]
{
<Phần thân của lớp: bao gồm định nghĩa các thuộc tính và
phương thức hành động >
}
Định danh lớp chính là tên của lớp do người xây dựng chương trình tạo
ra Tất cả các thành viên của lớp được định nghĩa bên trong thân của lớp, phầnthân này sẽ được bao bọc bởi hai dấu ({})
Trang 8Cũng như nhiều ngôn ngữ lập trình hướng đối tượng khác, kiểu trong
C# được định nghĩa là một lớp (class), và các thể hiện riêng của từng lớp được
gọi là đối tượng (object) Ngoài ra còn có các kiểu khác nhau ngoài kiểu lớp
như kiểu liệt kê, cấu trúc và kiểu ủy quyền (delegates)
Hai thành phần chính cấu thành một lớp là thuộc tính hay tính chất và
phương thức hay còn gọi là hành động ứng xử của đối tượng Trong C# hành
vi được định nghĩa như một phương thức thành viên của lớp Phương thức
chính là các hàm được định nghĩa trong lớp Do đó, ta còn có thể gọi các
phương thức thành viên là các hàm thành viên trong một lớp Các phương
thức này chỉ ra rằng các hành động mà lớp có thể làm được cùng với cách
thức làm hành động đó Thông thường, tên của phương thức thường được đặt
theo tên hành động, ví dụ như DrawLine() hay GetString()
b. Thuộc tính truy cập
Thuộc tính truy cập quyết định khả năng các phương thức của lớp bao
gồm việc các phương thức của lớp khác có thể nhìn thấy và sử dụng các biến
thành viên hay những phương thức bên trong lớp
Thuộc tính Giới hạn truy cập
public có thể được dùng bởi bất kì các phương thức củalớp bao gồm những lớp khác
Trang 9thì chỉ được truy cập bởi các phương thức của lớp A.
thì chỉ được các phương thức bên trong lớp A và nhữngphương thức dẫn xuất từ lớp A truy cập
được truy cập bởi những phương thức của bất cứ lớpnào trong cùng khối hợp ngữ với A
protected internal Thành viên trong lớp A được đánh dấu là protected
internal được truy cập bởi các phương thức của lớp A,
các phương thức của lớp dẫn xuất của A, và bất cứ lớpnào trong cùng khối hợp ngữ của A
Bảng1 : Các thuộc tính truy cập của một lớp
c. Tham số của phương thức
Trong các ngôn ngữ lập trình thì tham số và đối mục được xem là như
nhau, cũng tương tự khi đang nói về ngôn ngữ hướng đối tượng thì ta gọi một
hàm là một phương thức hay hành vi Tất cả các tên này điều tương đồng với
nhau
Một phương thức có thể lấy bất kỳ số lượng tham số nào, Các tham số
này theo sau bởi tên của phương thức và được bao bọc bên trong dấu ngoặc
tròn () Mỗi tham số phải khai báo kèm với kiểu dữ liệu của nó Bên trong
thân của phương thức, các tham số này như những biến cục bộ, giống như là
Trang 10khai báo biến bên trong phương thức và khởi tạo giá trị bằng giá trị của tham
số truyền vào
d. Đối tượng
Những kiểu dữ liệu chuẩn của C# như int, char, float,… là những kiểu dữliệu giá trị, và các biến được tạo ra từ các kiểu dữ liệu này được lưu trên stack.Tuy nhiên, với các đối tượng kiểu dữ liệu tham chiếu thì được tạo ra trên
heap, sử dụng từ khóa new để tạo một đối tượng:
ThoiGian t = new ThoiGian();
t thật sự không chứa giá trị của đối tượng ThoiGian, nó chỉ chứa địa chỉ củađối tượng được tạo ra trên heap, do vậy t chỉ chứa tham chiếu đến một đốitượng
C# cũng cung cấp cơ chế thu dọn (garbage collection) hay là hủy đối
tượng Khi làm việc với các đoạn mã không được quản lý thì cần phải khaibáo tường minh các phương thức hủy để giải phóng các tài nguyên
1.2 Camera và quá trình thu ảnh từ camera
Phân loại theo kỹ thuật hình ảnh camera gồm 3 loại:
1.Camera Analog:
Ghi hình băng từ xử lý tín hiệu analog, xử lý tín hiệu màu vector màu, loạiCamera này hiện nay ít dùng
Trang 112.Camera CCD (Charge Couple Device) (100% số): Camera CCD sử dụng kĩthuật CCD để nhận biết hình ảnh CCD là tập hợp những ô tích điện có thểcảm nhận ánh sáng sau đó chuyển tín hiệu ánh sáng sang tín hiệu số để đưavào các bộ xử lý Nguyên tắc hoạt động của CCD có thể mô tả dưới đây:CCD thu nhận những hình ảnh thông qua các hệ thống thấu kính củaCamera CCD có hàng ngàn những điểm ảnh sẽ chuyển đổi ánh sáng thànhnhững hạt điện tích và được số hoá Đây là một qúa trình chuyển đổi tương
tự số Các thông số kĩ thuật của Camera CCD là đường chéo màn hình cảmbiến (tính bằng inch ) Kích thước màn hình cảm biến càng lớn thì chấtlượng càng tốt (màn hình 1/3 inch Sony CCD sẽ có chất lượng tốt hơn 1/4inch CCD, vì 1/3 > 1/4) Hiện nay chỉ có 2 hãng sản xuất màn hình cảm biến
là Sony và Sharp Chất lượng của Sharp kém hơn chất lượng của Sony
3.Camera CMOS (complementary metal oxide semiconductor) CMOS có nghĩa
là chất bán dẫn có bổ sung oxit kim loại Các loại Camera số sử dụng côngnghệ CMOS Các Camera số thương mại sử dụng công nghệ CMOS thì chưa
đủ khả năng cung cấp trong thời điểm này khi so sánh chất lượng hình ảnhvới Camera CCD Các Camera thương mại dùng công nghệ CMOS có giáthành khoảng 500 USD đến 50000 USD Các Camera số sử dụng công nghệCMOS và CCD có ưu điểm rất rõ rệt so với Camera analog về độ rõ nét vàchất lượng hình ảnh Hiện nay sản phẩm chủ yếu của VIETSENS là loạiCamera CCD
• Chất lượng hình ảnh của một Camera phụ thuộc vào nhiều thông số:Image Sensor (Cảm biến hình): Hiện tại, chỉ có 2 hãng sản xuất cảm biếnhình trên thế giới là Sony và Sharp Tuy nhiên cũng có sự khác nhau về chấtlượng dẫn đến khác nhau về giá cả Ngoài thị trường, bạn có thể thấy 2 chiếcCamera giống hệt nhau về kiểu dáng, nhưng giá cả khá chênh lệch nhau Xinđừng ngạc nhiên, vì thực chất 2 chiếc Camera đó chỉ khác nhau 1 điểm duy
Trang 12nhất là cảm biên hình của hãng nào Nếu bạn muốn chất lượng hình ảnh tốt,
có 1 lời khuyên là nên dùng cảm biến hình của hãng Sony Kích thước mànhình cảm biến càng lớn thì chất lượng càng tốt (tuy nhiên màn hình 1/3 inchSony CCD sẽ có chất lượng tốt hơn 1/4 inch CCD)
Resolution( Độ phân giải): Độ phân giải càng lớn thì chất lượng hình ảnhcàng nét Thưòng thì trong các ứng dụng không cần thiết phải quan sát thật
rõ nét thì độ phân giải 480 TV Lines là hoàn toàn có thể chấp nhận được
CCD Total Pixels (Số điểm ảnh): Thông số này nói lên chất lượng hìnhảnh, số điểm ảnh càng lớn thì chất lưọng hình ảnh càng tốt, tuy nhiên, chấtlượng hình ảnh càng tốt thì cũng đồng nghĩa với dung lưọng ảnh càng lớn, và
sẽ tốn bộ nhớ lưu trữ cũng như ảnh hưỏng đến tốc độ đường truyền Thôngthường là với NTSC: 811 (H) x 508 (V), với PAL: 795 (H)x596 (V) Điềukiện hoạt động Minimum Illumination( Cường độ ánh sáng nhỏ nhất):Thường được tính bằng Lux Thông số này nói lên rằng, Camera chỉ có thểhoạt động ở cường độ ánh sáng lớn hơn cường độ ánh sáng nhỏ nhất Trongđiều kiện quá tối, nếu không phải là Camera có chức năng hồng ngoại thì sẽkhông hoạt động được
- Ánh nắng mặt trời:4000 lux
- Mây:1000lux
- Ánh sáng đèn tuýp 500 lux,
- Bầu trời có mây: 300lux
- Ánh sáng đèn tuýp đỏ 500 lux, trắng (300 lux) trắng sáng 1lux
- Đêm không trăng 0.0001 Lux
Trang 13Xin chú ý đến loại Camera có chức năng Auto Iris (Tự động hiệu chỉnhánh sáng) Đặc điểm của Camera loại này là chỉ với 1 nguồn sáng nhỏ, nó cóthể tự động khuyếch đại nguồn sáng đó lên để có thể quan sát được.
Power Supply (Nguồn cung cấp): Hiện nay đa số các Camera đều dùngloại nguồn 12VDC, chỉ một số ít các Camera dùng nguồn khác Tuy nhiên,bạn không phải lo lắng đến vấn đề nguồn 12VDC, vì phần lớn các Camerađều đi kèm với bộ chuyển đổi nguồn, do đó bạn có thể sử dụng trực tiếpnguồn 220VAC
Operatinon Temperature (Dải nhiệt độ hoạt động): Phần lớn cácCamera đều cho phép hoạt động trong dải nhiệt độ -100C – 500C, nếuCamera của bạn được sử dụng trong những điều kiện khắc nghiệt như trongcông nghiệp, khu vực có nhiệt độ cao thì bạn nên sử dụng các loại Camerachuyên dụng trong công nghiệp
Operational Humidity (Độ ẩm cho phép):Thông thường, độ ẩm chophép là 85% RH (độ ảm tương đối)
Trang 148mm 550
Bảng 2: bảng quy đổi tiêu cự và góc mở.
Tuỳ vào ứng dụng của bạn mà nên chọn loại Camera có góc quan sát làbao nhiêu độ Nếu bạn cần quan sát rộng, có thể chọn loại Camera có góc mởlớn (thường là 900) Còn nếu chỉ muốn quan sát trong một phạm vi rất hẹp thìcũng sẽ có những loại Camera phù hợp dành cho bạn Còn nếu muốn gócquan sát rất lớn, nên chọn loại Camera đặc biệt có chức năng Pan/ Tilt (quayngang, quay dọc) Nếu bạn đã có một chiếc Camera nhưng không có chứcnăng Pan/Tilt, bạn hoàn toàn có thể cải tiến nó bằng cách lắp thêm một đếquay ngang, quay dọc, khi đó, bạn có thể điều khiển Camera của bạn quaytheo bất cứ hướng nào bạn muốn
Môi trường Window đã cung cấp cho ta 2 cách lập trình video Cáchthứ nhất dung VFW API Cách thứ 2 là dung AVICap windows VFW API hỗtrợ cho quá trình bắt giữ video từ Webcam AVICap cung cấp cách tiếp cậndựa trên thông điệp đơn giản, cho phép chúng ta truy cập, điều khiển luồng dữliệu audio, video
• Quá trình thu ảnh từ camera:
Yêu cầu kỹ thuật của Hệ thống camera:
Hệ thống camera bao gồm các cụm chính sau:
- Camera giám sát (Camera analog và đầu ghi kỹ thuật số hoặc camera IP);
- Đường truyền (mạng Lan, Internet)
Lắp đặt:
Trang 15Vị trí lắp đặt: camera lắp trong nhà kiểm định, đảm bảo kiểm tra đượcthao tác kiểm định trên dây chuyền, không bị ngược sáng, không bị ảnh hưởngcủa điều kiện thời tiết.
Các thiết bị này rất đa dạng cả về chức năng cũng như sự tiện dụng, chonên trước khi quyết định thiết lập một hệ thống giám sát cho văn phòng haytại gia, những điều cần lưu ý là khảo sát vị trí lắp đặt webcam hoặc camera cógần nguồn cấp điện hay không và khu vực quan sát cần thu cả tín hiệu âmthanh như trong nhà có nuôi động vật hay chỉ ghi riêng hình ảnh, từ đó bạn sẽđưa ra được lựa chọn phù hợp cho từng thiết bị cũng như vị trí sử dụng hợp lý.Như vậy, bạn có thể sử dụng bất cứ loại webcam nào, miễn là thiết bị đó đãđược cài đặt và hoạt động tốt trong môi trường Windows trên máy tính
1.3 Giới thiệu hệ quản trị cơ sở dữ liệu Microsorft Access
MS.Access là một hệ quản trị cơ sở dữ liệu của hãng Microsorft chạy trên môi trường Windows, trên đó có các công cụ hữu hiệu và tiện lợi để tự động sản sinh chương trình cho hầu hết các bài toán quản lý thường gặp trong thực tế với MS.Access, người sử dụng không phải viết từng câu lệnh cụ thể
mà vẫn có được một chương trình hoàn chỉnh Nếu cần lập trình, MS.Access
có sẵn ngôn ngữ Access Basic để ta có thể lập trình theo ý muốn của người sử dụng
Access cho các thao tác dữ liệu khả năng kết nối và công cụ truy vấn mạnh mẽ của nó giúp công việc tìm kiếm thông tin một cách mau lẹ
Sáu đối tượng mà Access cung cấp cho người dùng là: Bảng (table), truy vấn (query), mẫu biểu (Form), báo biểu (report), Macro và Module Các đối tượng trên có đầy đủ khả năng lưu trữ dữ liệu, thống kê, kết xuất báo cáo thông tin và tự động cung cấp nhiều các tác vụ khác
Trang 16Access không chỉ là một hệ quản trị CSDL mà còn là hệ quản trị CSDLquan hệ (Relational DataBase) Access cung cấp công cụ Wizard để tự động tạo bảng, truy vấn, báo cáo hỗ trợ cho người dùng Ta có thể sử dụng việc phân tích bảng để tránh dư thừa dữ liệu Access hỗ trợ rất tốt cho những ngườimới bước vào tin học với winzard và các phương tiện hoạt động tự động khác
sẽ tiết kiệm được thời gian, công sức trong việc xây dựng và thiết kế chương trình
Cơ sở dữ liệu (Database): Cơ sở dữ liệu là hệ thống các dữ liệu có cấu trúc được lưu trữ trên các thiết bị lưu trữ dữ liệu thứ cấp (như băng từ, đĩa từ)
để có thể thỏa mãn yêu cầu khai thác thông tin đồng thời của nhiều người sử dụng hay nhiều chương trình ứng dụng với nhiều mục đích khác nhau
Hệ quản trị CSDL: Thep định nghĩa thông thường cơ sở dữ liệu là một tập hợp dữ liệu liên quan đến một chủa đề hay một công việc nào đó Có thể hiểu cơ sở dữ liệu là một vật chứa dung để lưu trữ, quản lý mọi thông tin mà
ta muốn và nó phải có khả năng truy xuất đồng thời
Ví dụ: Cơ sở dữ liệu về hoạt động kinh doanh của một công ty, trung tâm, cơ
sở dữ liệu về trường học như ở các trường PTTH, đại học chẳng hạn, cơ sở dữliệu về quản lý học sinh, sinh viên, quản lý thông tin giới thiệu việc làm……
Cơ sở dữ liệu quan hệ: là cơ sở dữ liệu trong đó các dữ liệu được đặt trong các bảng có quan hệ với nhau, mỗi bảng có hình thức hang, cột, mỗi cột gọi là một vùng, mỗi hang gọi là một mẫu tin
Hầu hết các hệ quản trị CSDL hiện nay đều lưu trữ và xử lý thông tin bằng mô hình quản trị CSDL quan hệ Từ quan hệ bắt nguồn từ thực tế là mỗi bản ghi trong CSDL chứa các thông tin liên quan đến một chủ thể duy nhất Ngoài ra, các các dữ liệu của 2 nhóm thông tin có thể ghép lại thành một chủ thể duy nhất dựa trên các giá trị dữ liệu quan hệ trong một hệ quản trị CSDL
Trang 17quan hệ, tất cả các dữ liệu ấy được quản lý theo các bảng, bảng lưu trữ thông tin về một chủ đề Thậm chí khi sử dụng một trong những phương tiện của một hệ CSDL để rút ra thông tin từ một bảng hay nhiều bảng khác (thường được gọi là truy vấn) thì kết quả cũng giống như một bảng Thực tế còn còn
có thể hiện một truy vấn dựa trên kết quả của một truy vấn khác
Các khả năng của một hệ CSDL là cho chúng ta quyền kiểm soát hoàn toàn bằng cách định nghĩa dữ liệu, làm việc với dữ liệu và chia sẻ với dữ liệu khác
Một hệ CSDL có 3 khả năng chính:
Toàn bộ chức năng trên nằm trong các tính năng mạnh mẽ của
Bảng là nơi chứa dữ liệu về một đối tượng thông tin nào đó như SINHVIÊN, HÓA ĐƠN, Mỗi hàng trong bảng gọi là một bản ghi (record) chứa
Trang 18các nội dung riêng của đối tượng đó Mỗi bản ghi của một bảng đều có chungcấu trúc, tức là các trường (field) Ví dụ: Cho bảng dưới đây để quản lý lýlịch khoa học cán bộ trong trường đại học, có các trường MACB (Mã cán bộ),TRINHDOVH (Trình độ văn hóa), CHUYENMON (Chuyên môn), Trongmột CSDL có thể chứa nhiều bảng, thường mỗi bảng lưu trữ nhiều thông tin(dữ liệu) về một đối tượng thông tin nào đó, mỗi một thông tin đều có nhữngkiểu đặc trưng riêng, mà với Access nó sẽ cụ thể thành những kiểu dữ liệu củacác trường.
1.3.2 Thiết kế cơ sở dữ liệu
Bước 1: Xác định mục tiêu khai thác CSDL của chúng ta Điều này quyết định các loại sự kiện chúng ta sẽ đưa vào MS Access Giáo trình “Các hệ quản trị cơ sở dữ liệu"
Bước 2: Xác định các bảng dữ liệu cần thiết Mỗi đối tượng thông tin sẽ hìnhthành một bảng trong CSDL của chúng ta
Bước 3: Sau khi đã xác định xong các bảng cần thiết, tiếp đến ta phải chỉ rõ thông tin nào cần quản lý trong mỗi bảng, đó là xác định các trường Mỗi loại thông tin trong bảng gọi là trường Mọi mẫu in trong cùng một bảng đều có chung cấu trúc các trường Ví dụ: Trong lý lịch khoa học cán bộ, những
trường (thông tin) cần quản lý là: “HỌ VÀ TÊN”, “CHUYÊN MÔN”, “HỌC VỊ”, “HỌC HÀM”,
Bước 4: Xác định các mối quan hệ giữa các bảng Nhìn vào mỗi bảng dữ liệu
và xem xét dữ liệu trong bảng này liên hệ thế nào với dữ liệu trong bảng khác.Thêm trướng hoặc tạo bảng mới để làm rõ mối quan hệ này Đây là vấn
đề hết sức quan trọng, tạo được quan hệ tốt sẽ giúp chúng ta nhanh chóng truytìm tìm và kết xuất dữ liệu Bước 5: Tinh chế, hiệu chỉnh lại thiết kế Phân tích lại thiết kế ban đầu để tim lỗi, tạo bảng dữ liệu và nhập vào vài bản ghi,
Trang 19thử xem CSDL đó phản ánh thế nào với những yêu cầu truy xuất của chúng ta,
có rút được kết quả đúng từ những bảng dữ liệu đó không Thực hiện các chỉnh sửa thiết kế nếu thấy cần thiết
1.3.3 Truy vấn
Sức mạnh thực sự của CSDL là khả năng tìm đúng và đầy đủ thông tin mà chúng ta cần biết, trình bày dữ liệu sắp xếp theo ý muốn Để đáp ứng yêu cầu trên, Acces cung cấp một công cụ truy vấn cho phép đặt câu hỏi với dữ liệu đang chứa bên trong các bảng trong CSDL
Truy vấn là một công cụ cho phép đặt câu hỏi với dữ liệu trong bảng dữliệu trong CSDL Loại truy vấn thông dụng nhất là truy vấn chọn (Select Query ) Với kiểu truy vấn này chúng ta có thể xem xét dữ liệu trong các bảng, thực hiện phân tích và chỉnh sửa trên dữ liệu đó, có thể xem thông tin từ
1 bảng hoặc có thể thêm nhiều trường từ nhiều bảng khác nhau
Ví dụ:
Cho 2 bảng dữ liệu KHOHANG (MAHANG, TENHANG,GIA)BANHANG(MAHANG, TENKHACH, SOLUONG, NGAYMUA) Hãyhiển thị những khách hàng mua hàng trong tháng 7 bao gồm các thông tin:MAHANG, TENHANG, GIA, TENKHACH Sau khi thực hiện truy vấn, dữliệu thỏa mãn yêu cầu được rút ra và tập hợp vào một bảng kết qủa gọi làDynaset (Dynamic set) Dynaset cũng hoạt động như 1 bảng (Table) nhưng
nó không phải là bảng vfa kết quả khi hiển thị có thể cho phép sửa đổi Mộtloại bảng thể hiện kết quả truy vấn khác là Snapshot, nó tương tự nhưdynaset tuy nhiên không thể sửa đổi thông tin ( Như truy vấn Crosstab )
Các loại truy vấn trong Access:
• Select Query : Truy vấn chọn
Trang 20• Crosstab Query : Truy vấn tham khỏa chéo (Thể hiện dòng và cột)
• Action Query : Truy vấn hành động gồm:
Truy vấn tạo bảng (make table Query )
Truy vấn nối (append Query )
Truy vấn cập nhật ( Update Query )
Truy vấn xóa dữ liệu ( Delete Query )
• SQL Query : Truy vấn được viết bởi ngôn ngữ SQL
• Pass throught Query : Gởi các lệnh đến một CSDL SQL như MicrosoftSQL server
1.4 Ánh sáng
1.4.1 Độ sáng, màu sắc và độ bão hòa
Sự nhận biết ánh sáng của loài người với c(λ) được mô tả chung bằng thuật
ngữ độ sáng (brightness), màu sắc và độ bão hòa Độ sáng (brightness) liên
quan đến độ sáng của ánh sáng Màu sắc liên quan đến màu, chẳng hạn như
mà đỏ, màu cam hoặc màu mận chin (tía) Độ bão hòa đôi khi còn gọi là sắc
độ, liên quan đến mức độ tươi hoặc sẫm của màu
Điều chỉnh độ báo hòa và độ sáng cho ảnh: đôi khi ảnh thu nhận được có
độ sáng quá cao hoặc quá thấp ảnh hưởng đến kết quả xử lý Ví dụ như khi độsáng quá cao màu của nhiều vật thu nhận được qua webcam đều là màu trắngtrong khi màu thực sự của chúng không phải màu trắng và khi độ sáng quáthấp ta thường thu nhận được toàn màu đen điều này ảnh hưởng lớn tới việcphân biệt đối tượng theo màu sắc chính vì vậy ta cần phải điều chỉnh lại độsáng của ảnh thu nhận được
Trang 211.4.2 Biểu diễn ảnh đơn sắc
Với ảnh đen-trắng, ánh sáng c(λ) có thể được biểu diễn bởi một số I nhưsau:
Trong đó: SBW(λ) là đặc tính phổ của cảm biến được sử dụng và k là hệ
số tỷ lệ xích (scaling constant) Vì sự cảm nhận độ sáng có tầm quan trọng
hàng đầu đối với ảnh đen trắng, nên SBW(λ) được chọn giống như hàm hiệusuất ánh sáng tương đối giá trị I thường được gọi là độ chói, cường độ haymức xám của ảnh đen trắng vì I trong công thức trên biểu diễn công suấttrên đơn vị diện tích, nên nó bao giờ cũng không âm và hữu hạn, nghĩa là:0≤ I≤ Imax
Trong đó Imax là giá trị lớn nhất mà I đạt được Trong xử lý ảnh, I đượcchia thang(scaled) sao cho nó nằm trong một phạm vi thuận lợi nào đó, ví
dụ 0≤ I≤1 hoặc 0≤ I≤ 255 Trong những trường hợp này 0 ứng với mức tốinhất và 1 hoắc 255 ứng với mức sáng nhất vì cách đặt mức thang này trên
đơn vị trắc quang (photometric) hoặc bức xạ (radiometric) cụ thể gắn với I
trở nên không quan trọng Ảnh đen trắng, trong cảm nhận chỉ có một màu
Vì vậy có khi gọi là ảnh đơn sắc (monochrome).
Trang 22Chương 2 XỬ LÝ ẢNH VÀ CÁC PHƯƠNG PHÁP XỬ LÝ ẢNH CƠ
BẢN
Xử lý ảnh là một trong những mảng quan trọng nhất trong kỹ thuật thị giácmáy tính, là tiền đề cho nhiều nghiên cứu thuộc lĩnh vực này Hai nhiệm vụ cơbản của quá trình xử lý ảnh là nâng cao chất lượng thông tin hình ảnh và xử lý
số liệu cung cấp cho các quá trình khác trong đó có việc ứng dụng thị giác vàođiều khiển
Đã có rất nhiều công trình nghiên cứu tại nhiều quốc gia từ năm 1920 đếnnay về xử lý ảnh đã góp phần thúc đẩy tiến bộ trong lĩnh vực này lớn mạnhkhông ngừng
Quá trình bắt đầu từ việc thu nhận ảnh nguồn (từ các thiết bị thu nhậnảnh dạng số hoặc tương tự) gửi đến máy tính Dữ liệu ảnh được lưu trữ ở địnhdạng phù hợp với quá trình xử lý Người lập trình sẽ tác động các thuật toántương ứng lên dữ liệu ảnh nhằm thay đổi cấu trúc ảnh phù hơp với các mụcđích khác nhau Trong nghành khoa học máy tính, xử lý ảnh là một dạng của
xử lý tín hiệu cho đầu vào là một ảnh hoặc các frame của phim ảnh Đầu ra cóthể là một hình ảnh, hoặc tập hợp các ký tự hoặc các tham số liên quan tớihình ảnh Thường thì kỹ thuật xử lý ảnh có liên quan tới xử lý tín hiệu haichiều và được áp dụng bằng một chuẩn riêng về kỹ thuật xử lý ảnh cho nó.Các khái niệm cơ bản để xử lý tín hiệu như, khái niệm về tích chập, các biếnđổi Fourier, biến đổi Laplace, các bộ lọc hữu hạn… Ngoài ra còn cần tới cáccông cụ toán học như đại số tuyến tính, sác xuất, thống kê Và một số kiếnthức cần thiết như Trí tuệ nhân tao, Mạng nơ ron nhân tạo cũng được đề cậptrong quá trình phân tích và nhận dạng ảnh
Trang 232.1 Cơ bản về xử lý ảnh
2.1.1 Các giai đoạn của một quá trình xử lý ảnh
Để có thể hình dung cấu hình một hệ thống xử lý ảnh chuyên dụng hay một
hệ thống xử lý ảnh trong nghiên cứu, đào tạo, trước hết chúng ta hãy xem xétcác bước cần thiết trong xử lý ảnh
Hình 2.1 các giai đoạn của một quá trình xử lý ảnh
Thu nhận ảnh
Ảnh có thể thu nhận qua camera Thường ảnh thu nhận qua camera là tínhiệu tương tự (loại camera ống kiểu CCIR), nhưng cũng có thể là tín hiệu sốhoá (loại CCD - Charge Coupled Device) Ảnh cũng có thể thu nhận từ vệ tinhqua các bộ cảm ứng hay ảnh, tranh được quét trên scanner Sau đó được lưutrữ trong máy tính Gồm có 2 quá trình:
- Biến đổi năng lượng quang học sang năng lượng điện
- Biến đổi năng lượng điện sang các ma trận
Xử lí trước
Quá trình xử lí trước thực ra bao gồm nhiều công đoạn nhỏ Trước hết
là công việc tăng cường ảnh để nâng cao chất lượng ảnh Do những nguyênnhân khác nhau: có thể do chất lượng thiết bị thu nhận ảnh, do nguồn sáng hay
do nhiễu, ảnh có thể bị suy biến Do vậy cần phải tăng cường và khôi phục lại
Trang 24ảnh để làm nổi bật một số đặc tính chính của ảnh, hay làm cho ảnh gần giốngnhất với trạng thái gốc (trạng thái trước khi ảnh bị biến dạng) Nhằm các mụcđích phục vụ cho các bước tiếp theo
Những mục đích riêng biệt có thể đặt ra cho quá trình xử lý trước là:
+ Thực hiện điều chỉnh độ chiếu sáng để khắc phục hậu quả của sựchiếu sáng không đồng đều
+ Giảm nhỏ thành phần nhiễu
+ Cải thiện độ tương phản của ảnh màu do khuôn màu không tốt
+ Hiệu chỉnh độ méo giá trị xám
+ Loại bỏ tính không đồng thể của ảnh gây nên từ tính không đồng bộcủa lớp nhạy quang của hệ thống thu nhận ảnh
+ Chuẩn hóa độ lớn, dạng và màu
+ Điều chỉnh bộ lọc để khuyếch đại các tần số với những thông tinquan trọng được khuyếch đại và nén đi các tần số khác
Là quá trình phân chia các đối tượng cần khảo sát ra khỏi phần nội dungcòn lại của ảnh, phân tách các đối tượng tiếp giáp nhau và phân tách nhữngđối tượng riêng biệt thành những đối tượng con Một phương pháp phân đoạnảnh là sử dụng một ngưỡng giá trị xám để phân tách ảnh thành đối tượng vànền (những điểm dưới ngưỡng xám thuộc về nền, ngược lại thuộc về đốitượng)
Tách ra các đặc tính
Trang 25Dựa trên các thông tin thu nhận được qua quá trình phân đoạn, kết hợpvới các kỹ thuật xử lý để đưa ra các đặc trưng, đối tượng ảnh cũng như cácthông tin cần thiết trong quá trình xử lý Nhờ các đặc tính có được từ ảnh ta cóthể phân loại các đối tượng khác nhau của ảnh.
Phân loại ảnh
Thực hiện công việc sắp xếp một đối tượng vào một lớp đối tượng chotrước Để giải quyết bài toán này thì các đặc tính có ý nghĩa phải được lựachọn Ta tìm thấy các đặc tính có ý nghĩa khi ta phân tích các mẫu được lựachọn từ những đối tượng khác nhau
2.1.2 Mô tả ảnh
Pixel (Picture Element) : phần tử ảnh
Ảnh trong thực tế là một ảnh liên tục về không gian và về giá trị độsáng Để có thể xử lý ảnh bằng máy tính cần thiết phải tiến hành số hoá ảnh.Trong quá trình số hoá, người ta biến đổi tín hiệu liên tục sang tín hiệu rời rạcthông qua quá trình lấy mẫu (rời rạc hóa về không gian) và lượng hoá thànhphần giá trị mà thể về nguyên tắc bằng mắt thường không phân biệt được hai
điểm kề nhau Trong quá trình này, người ta sử dụng khái niệm Picture element mà ta quen gọi hay viết là Pixel - phần tử ảnh Mỗi Pixel bao gồm
một cặp tọa độ chỉ vị trí (x,y) và một mức xám nhất định Mật độ Pixel trênmột ảnh số cho ta xác định được độ phân giải của ảnh Ảnh có độ phân giải
Trang 26càng cao thì càng rõ nét và ngược lại Ví dụ một ảnh số có độ phân giải là 800
x 600 Pixel nghĩa là có 800 điểm theo chiều ngang và 600 điểm theo chiềudọc
Hình 2.2 ví dụ về pixel ảnh
Một số quan hệ cơ bản giữa các pixel
- Gọi f(x,y) là ảnh số, p, q là các điểm ảnh, S là một tập con các điểm ảnh
a. Quan hệ láng giềng (neighborhood)
Cho điểm ảnh p(x,y)
- Các láng giềng theo hướng đứng, ngang N4(p): (x+1,y), (x-1,y), (x,y+1),(x,y-1)
- Các láng giềng theo hướng chéo ND(p): (x+1,y+1), (x+1,y-1), 1,y+1), 1,y-1)
(x Các láng giềng theo 8 hướng N8(p): N4(p) + ND(p)
Trang 27b. Quan hệ liên thông (Conectivity)
- Quan hệ lien thông giữa 2 pixel là quan trọng bởi vì: nó được sửdụng để thiết lập các đường biên của đối tượng và các thành phầncủa các vùng ảnh
- Hai pixel là có quan hệ liên thông với nhau nếu:
+ Chúng là láng giềng của nhau
+ Các giá trị xám của chúng thỏa mãn tiêu chuẩn nhất định về sựtương đồng
- Với S p∈ ∀ , thì tập các pixel trong S có liên thông với p thì đượcgọi là một thành phần liên thông của S
- Nếu S chỉ có 1 thành phần liên thông, thì S được gọi là 1 tập liênthông
c. Quan hệ lân cận(Adjacency)
Gọi V là tập các giá trị xám dùng để định nghĩa lân cận Ví dụ V= {1} làmột tập định nghĩa cho lân cận của các pixel có giá trị 1
- 4-Adjacency: 2 pixel p,q là 4-Adjacency nếu q∈ N4(p)
- 8-Adjacency: 2 pixel p,q là 8-Adjacency nếu q∈ N8(p)
- m-Adjacency: 2 pixel p,q là m-Adjacency nếu:
d. Khoảng cách giữa các pixel (Distance Measures)
Cho p(x,y), q(s,t), z(u,v) D là hàm xác định khoảng cách
Trang 28Ví dụ: Tập các pixel với D4 2 ≤ kể từ p(x,y):
ChessBoard Distance (D4 Distance)
Trang 29Rõ ràng là D4, D8 là độc lập với bất cứ các đường (path) tồn tại nối giữa cácđiểm Bởi vì việc tính khoảng cách này ta chỉ quan tâm tới tọa độ của cácđiểm (không chú ý đến việc có tồn tại các đường liên thông giữa chúng haykhông)
Mức xám của điểm ảnh là kết quả sự biến đổi tương ứng một cường độsáng của điểm ảnh đó với một giá trị số (kết quả của quá trình lượng hoá).Cách mã hoá kinh điển thường dùng 16, 32 hay 64 mức Mã hoá 256 mức làphổ dụng nhất do lý do kỹ thuật Vì 28 = 256 (0, 1, , 255), nên với 256 mứcmỗi pixel sẽ được mã hoá bởi 8 bit
Ảnh số là một tập hợp các điểm ảnh Khi được số hoá, nó thường đượcbiểu diễn bởi bảng hai chiều I(n,m): n dòng và m cột Ta nói ảnh gồm n x mpixels Người ta thường kí hiệu P(x,y) để chỉ một pixel Tùy theo loại ảnh màmột pixel có thể lưu trữ trên 1, 4, 8 hay 24 bit
P(x,y)| x=0 n, y=0 m
Sau đây là ví dụ về một ảnh xám Bức ảnh được tái hiện bởi 40000 mẫusắp xếp trên mảng 2 chiều, 200 cột và 200 dòng Các mức xám của một Pixelnằm trong khoảng [0 255] Với 0 là màu đen, 255 là màu trắng các giá trịtrung gian là màu xám
Trang 30Hình 2.3 Ví dụ về ảnh xám
Phân loại ảnh
Ảnh số (Image Digital) được thể hiện trên máy tính dưới các dạng khácnhau tùy theo giá trị mức xám của từng điểm ảnh cũng như sự mã hóa cácđiểm ảnh Dựa vào sự khác nhau đó mà người ta phân ra thành 3 loại ảnh chủyếu đó là: ảnh nhị phân, ảnh xám và ảnh màu
a) Ảnh nhị phân
Ảnh nhị phân chỉ bao gồm hai mức màu phân biệt: màu đen và màu trắng.Mức xám của tất cả các điểm ảnh chỉ nhận một trong hai giá trị 0 hoặc 1 (0 làmàu đen và 1 là màu trắng) Với ảnh nhị phân, mỗi Pixel được mã hóa trênmột bit Sau đây là một ví dụ về ảnh đen trắng với tập hợp 8 x 8 = 64 điểm
Trang 31c) Ảnh màu
Thông tin con người thu nhận bằng hình ảnh đều bắt nguồn từ thị giác.Mắt người có thể phân biệt được rõ nét nhất 3 màu là: Đỏ (Red - R), lục(Green - G), lam (Blue - B)
Trang 32Ảnh màu nói chung là ảnh tổ hợp từ 3 màu cơ bản: đỏ (R), lục (G), lam (B)
và thường thu nhận trên các giải băng tần khác nhau Với ảnh màu cách biểudiễn cũng tương tự như ảnh đen trắng chỉ khác là mỗi Pixel ảnh gồm 3 thànhphần màu P=[red,green,blue] Mỗi Pixel cần được biểu diễn bằng 3 bytes Mỗimàu cũng phân thành L cấp khác nhau (L thường là 256) Do vậy, để lưu trữảnh màu, người ta có thể lưu trữ từng mặt màu riêng biệt, mỗi màu lưu trữnhư một ảnh đa cấp xám Do đó không gian nhớ dành cho một ảnh màu lớngấp 3 lần một ảnh đa cấp xám cùng kích thước
2.1.3 Biểu diễn ảnh
Biểu diễn ảnh trong máy tính
Trong biểu diễn ảnh, người ta thường dùng các phần tử đặc trưng củaảnh là pixel Nhìn chung có thể xem một hàm hai biến chứa các thông tin nhưbiểu diễn của một ảnh Các mô hình biểu diễn ảnh cho ta một mô tả lôgic hayđịnh lượng các tính chất của hàm này Trong biểu diễn ảnh cần chú ý đến tínhtrung thực của ảnh hoặc các tiêu chuẩn “thông minh” để đo chất lượng ảnhhoặc tính hiệu quả của các kỹ thuật xử lý
Ta cần xem xét ảnh sẽ được biểu diễn ra sao trong bộ nhớ máy tính.Nếu lưu trữ trực tiếp ảnh thô theo kiểu bản đồ ảnh, dung lượng sẽ khá lớn, tốnkém mà nhiều khi không hiệu quả theo quan điểm ứng dụng Thường người takhông biểu diễn toàn bộ ảnh thô mà tập trung đặc tả các đặc trưng của ảnhnhư: biên ảnh (Boundary) hay các vùng ảnh (Region) Dưới đây giới thiệumột số phương pháp biểu diễn Thường người ta dùng:
- Biểu diễn mã loạt dài (Run - Length Code)
- Biểu diễn mã xích (Chaine Code)
Trang 33- Biểu diễn mã tứ phân (Quad Tree Code).
- Ngoài ra cũng dùng mô hình thống kê
Các định đạng ảnh
Ảnh thu được sau quá trình số hóa thường được lưu lại phục vụ cho cácquá trình tiếp theo Trong quá trình phát triển của kỹ thuật xử lý ảnh tồn tạinhiều định dạng ảnh khác nhau
a) Mào đầu (Header): Là phần chứa các thông tin về kiểu ảnh,
kích thước, độ phân giải, số bit dùng cho 1 Pixel, cách mã hóa, vị trí bảngmàu…
b) Dữ liệu nén (Data Compression): Số liệu ảnh được mã hóa bởi
kiểu mã đã được Header chỉ ra
c) Bảng màu (Palette Color): Bảng màu không nhất thiết phải có
ví dụ khi là ảnh đen trắng Nếu có bảng màu cho biết số màu dùng trong ảnh
và bảng màu được sử dụng để hiện thị màu của ảnh
Trang 342.2 Một số phương pháp xử lý ảnh cơ bản
Ta nhận thấy một ảnh màu thông thường là ảnh bao gồm ba màu chính Red– Green – Blue sẽ bao gồm 3 ảnh xám: Red, Green và Blue Như vậy để xử lýảnh mầu ta phải xử lý trên 3 ảnh xám Red, Green, Blue của nó và kết hợp lại
sẽ có kết quả như mong muốn
2.2.1 Kỹ thuật tăng giảm độ sáng
Tăng cường độ sáng (Brightness) của một ảnh có thể được hiểu như sựphát sáng toàn bộ ảnh Hay nói một cách cụ thể đó là sự phát sáng toàn bộ củamọi Pixel trong ảnh đó
Đây là một kỹ thuật khá đơn giản: để tăng thêm độ sáng, tất cả các Pixelcủa ảnh cần được cộng thêm giá trị điều chỉnh vào mọi kênh màu RGB Tuy
kỹ thuật này đơn giản nhưng nó đem lại hiệu quả khá cao và rất hay được sửdụng trong lĩnh vực xử lý ảnh Nó giúp ích rất nhiều trong các ngành như yhọc, địa lý, quân sự, trong việc phân tích và nhận dạng
Ở đây điều chỉnh Brightness không chỉ được sử dụng để làm sáng lênnhững ảnh tối mà còn được sử dụng để làm tối đi các ảnh sáng Một ảnh sánghoàn toàn đơn giản là tất cả các Pixel đều màu trắng trong khi một ảnh tối tất
cả các Pixel đều màu tối Sự khác nhau duy nhất trong làm tối một ảnh là trừ
đi giá trị điều chỉnh vào mỗi kênh màu R - G - B của ảnh
Đối với mỗi kênh màu, chúng chỉ nhận các giá trị [0 255] Chính vì thế khităng cường hay giảm độ sáng của một ảnh ta phải chú ý đến ngưỡng của cáckênh Điều đó có nghĩa là với mỗi kênh màu của một Pixel nếu nhỏ hơn 0 thì
ta phải gán bằng 0 và nếu lớn hơn 255 thì ta phải gán bằng 255
Trang 35Biểu thức cho kỹ thuật Brightness có dạng:
g(x,y) = f(x,y) + b
Trong đó b là hằng số cộng thêm vào giá trị màu f(x,y) Độ sáng của ảnh tăng nếu b > 0, và giảm bớt nếu b < 0.
Thuật toán chung được miêu tả bằng :
If (Brightness = True) Then // Tăng độ sáng
NewValue = OldValue + Adjustment;
Else NewValue = OldValue - Adjustment; // Giảm độ sáng
If (NewValue < ValueMin) Then NewValue = ValueMin;
If (NewValue > ValueMax) Then NewValue = ValueMax;
Để cho thuật giả này nhanh hơn, chúng ta phân ra hai mức làm sáng(Lightening) và làm tối (Darkening) Việc phân ra làm hai mức là có hai lý do.Thứ nhất là khi làm sáng ảnh thì không phải kiểm tra nếu giá trị màu dưới 0
và khi làm tối ảnh cũng không phải kiểm tra nếu giá trị màu trên 255 Lý dothứ hai quan trọng hơn Đó là một Byte chỉ giữ những giá trị giữa 0 và 255
Mà phạm vi điều chỉnh màu lại nằm trong [-255 255] Điều đó có nghĩa lànếu chúng ta không phân ra làm hai mức thì giá trị điều chỉnh màu phải là Int
và khi đó việc xử lý tốn thêm thời gian sau mỗi vòng lặp