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

CHƯƠNG 2 xử lý ẢNH TRÊN LABVIEW

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 (5.86 MB, 59 trang )

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM

CHƯƠNG 2: XỬ LÝ ẢNH TRÊN LABVIEW
I.

Xử lý ảnh và cá vấn đề cơ bản trong xử lý ảnh

1.1. Xử lý ảnh và quá trình phát triển
Xử lý ảnh là một lĩnh vực mang tính khoa học và công nghệ. Nó là một ngành
khoa học mới mẽ so với nhiều ngành khoa học khác nhưng tốc độ phát triển của nó rất
nhanh, kích thích các trung tâm nghiên cứu, ứng dụng, đặc biệt là máy tính chuyên
dụng riêng cho nó ngày càng đa dạng và mở rộng.
Con người thu nhận thông tin qua các giác quan, trong đó thị giác đóng vai trò
quan trọng nhất. Những năm trở lại đây với sự phát triển của phần cứng máy tính, xử
lý ảnh và đồ họa phát triển một cách mạnh mẽ và có nhiều ứng dụng trong cuộc sống.
Xử lý ảnh và đồ họa đóng vai trò quan trọng trong tương lai ngành ô tô.
Quá trình xử lý ảnh được xem như là quá trình thao tác ảnh đầu vào nhằm cho ra
kết quả mong muốn. Kết quả đầu ra của một quá trình xử lý ảnh có thể là một ảnh
“tốt hơn” hay một kết luận.

Ảnh thu nh ận

Quá trình xử lý

Các giá trị mong muốn

Hình 2.1: Cấu trúc xử lý ảnh.
Các phương pháp xử lý ảnh bắt đầu từ các ứng dụng chính như nâng cao chất
lượng ảnh và phân tích ảnh. Ứng dụng đầu tiên được biết đến là nâng cao chất lượng
ảnh báo được truyền qua cáp từ Luân đôn đến New York từ những năm 1920. Vấn đề
nâng cao chất lượng ảnh có liên quan tới phân bố mức sáng và độ phân giải của ảnh.


Việc nâng cao chất lượng ảnh được phát triển vào khoảng những năm 1955. Điều này
có thể giải thích được vì sau thế chiến thứ hai, máy tính phát triển nhanh tạo điều kiện
cho quá trình xử lý ảnh sô thuận lợi. Năm 1964, máy tính đã có khả năng xử lý và nâng
cao chất lượng ảnh từ mặt trăng và vệ tinh Ranger 7 của Mỹ bao gồm: làm nổi đường
biên, lưu ảnh. Từ năm 1964 đến nay, các phương tiện xử lý, nâng cao chất lượng, nhận
dạng ảnh phát triển không ngừng. Các phương pháp tri thức nhân tạo như mạng nơ ron

Trang 1


TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM

nhân tạo, các thuật toán xử lý hiện đại và cải tiến, các công cụ nén ảnh ngày càng được
áp dụng rộng rãi và thu nhiều kết quả khả quan.
Để dễ tưởng tượng, xét các bước cần thiết trong xử lý ảnh. Đầu tiên, ảnh tự
nhiên từ thế giới ngoài được thu nhận qua các thiết bị thu (như Camera, máy chụp ảnh).
Trước đây, ảnh thu qua Camera là các ảnh tương tự (loại Camera ống kiểu CCIR). Gần
đây, với sự phát triển của công nghệ, ảnh màu hoặc đen trắng được lấy ra từ Camera,
sau đó nó được chuyển trực tiếp thành ảnh số tạo thuận lợi cho xử lý tiếp theo. (Máy
ảnh số hiện nay là một thí dụ gần gũi). Mặt khác, ảnh cũng có thể tiếp nhận từ vệ tinh;
có thể quét từ ảnh chụp bằng máy quét ảnh.
Có thể xem một ví dụ minh họa cho quá trình trên.

Hình 2.2: Tiến trình xử lý ảnh
Có thể hiểu tiến trình xử lý trên như sau
a) Phần thu nhận ảnh (Image Acquisition)
Ảnh có thể nhận qua camera màu hoặc đen trắng. Thường ảnh nhận qua camera
là ảnh tương tự (loại camera ống chuẩn CCIR với tần số 1/25, mỗi ảnh 25 dòng), cũng
có loại camera đã số hoá (như loại CCD – Change Coupled Device) là loại photodiot
tạo cường độ sáng tại mỗi điểm ảnh.

Camera thường dùng là loại quét dòng: ảnh tạo ra có dạng hai chiều. Chất lượng
một ảnh thu nhận được phụ thuộc vào thiết bị thu, vào môi trường (ánh sáng, phong
cảnh).

Trang 2


TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM

b) Tiền xử lý (Image Processing)
Sau bộ thu nhận, ảnh có thể nhiễu độ tương phản thấp nên cần đưa vào bộ tiền
xử lý để nâng cao chất lượng. Chức năng chính của bộ tiền xử lý là lọc nhiễu, nâng độ
tương phản để làm ảnh rõ hơn, nét hơn.
c) Phân đoạn (Segmentation) hay phân vùng ảnh
Phân vùng ảnh là tách một ảnh đầu vào thành các vùng thành phần để biểu diễn
phân tích, nhận dạng ảnh. Ví dụ: để nhận dạng chữ (hoặc mã vạch) trên phong bì thư
cho mục đích phân loại bưu phẩm, cần chia các câu, chữ về địa chỉ hoặc tên người
thành các từ, các chữ, các số (hoặc các vạch) riêng biệt để nhận dạng. Đây là phần phức
tạp khó khăn nhất trong xử lý ảnh và cũng dễ gây lỗi, làm mất độ chính xác của ảnh.
Kết quả nhận dạng ảnh phụ thuộc rất nhiều vào công đoạn này.
d) Biểu diễn ảnh (Image Representation)
Đầu ra ảnh sau phân đoạn chứa các điểm ảnh của vùng ảnh (ảnh đã phân đoạn)
cộng với mã liên kết với các vùng lận cận. Việc biến đổi các số liệu này thành dạng
thích hợp là cần thiết cho xử lý tiếp theo bằng máy tính. Việc chọn các tính chất để thể
hiện ảnh gọi là trích chọn đặc trưng (Feature Selection) gắn với việc tách các đặc tính
của ảnh dưới dạng các thông tin định lượng hoặc làm cơ sở để phân biệt lớp đối tượng
này với đối tượng khác trong phạm vi ảnh nhận được. Ví dụ: trong nhận dạng ký tự trên
phong bì thư, chúng ta miêu tả các đặc trưng của từng ký tự giúp phân biệt ký tự này
với ký tự khác.
e) Nhận dạng và nội suy ảnh (Image Recognition and Interpretation)

Nhận dạng ảnh là quá trình xác định ảnh. Quá trình này thường thu được bằng
cách so sánh với mẫu chuẩn đã được học (hoặc lưu) từ trước. Nội suy là phán đoán theo
ý nghĩa trên cơ sở nhận dạng. Ví dụ: một loạt chữ số và nét gạch ngang trên phong bì
thư có thể được nội suy thành mã điện thoại. Có nhiều cách phân loai ảnh khác nhau về
ảnh. 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.

Trang 3


TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM

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…
f) Cơ sở tri thức (Knowledge Base)
Như đã nói ở trên, ảnh là một đối tượng khá phức tạp về đường nét, độ sáng
tối, dung lượng điểm ảnh, môi trường để thu ảnh phong phú kéo theo nhiễu. Trong

Trang 4


TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM ĐỒ ÁN TỐT NGHIỆP

nhiều khâu xử lý và phân tích ảnh ngoài việc đơn giản hóa các phương pháp toán học
đảm bảo tiện lợi cho xử lý, người ta mong muốn bắt chước quy trình tiếp nhận và xử lý
ảnh theo cách của con người. Trong các bước xử lý đó, nhiều khâu hiện nay đã xử lý
theo các phương pháp trí tuệ con người. Vì vậy, đây các cơ sở tri thức được phát huy.

Trong tài liệu, chương 6 về nhận dạng ảnh có nêu một vài ví dụ về cách sử dụng các cơ
sở tri thức đó.
1.2

Những vấn đề cơ bản trong hệ thống xử lý ảnh
a) Điểm ảnh (Picture Element)
Gốc của ảnh (ảnh tự nhiên) là ảnh liên tục về không gian và độ sáng. Để xử lý

bằng máy tính (số), ảnh cần phải được số hoá. Số hoá ảnh là sự biến đổi gần đúng một
ảnh liên tục thành một tập điểm phù hợp với ảnh thật về vị trí (không gian) và độ sáng
(mức xám). Khoảng cách giữa các điểm ảnh đó được thiết lập sao cho mắt người không
phân biệt được ranh giới giữa chúng. Mỗi một điểm như vậy gọi là điểm ảnh (PEL:
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).
Định nghĩa:
Điểm ảnh (Pixel) 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. Mỗi phần tử trong ma trận được gọi là một phần tử ảnh.
b) Độ phân giải của ảnh
Định nghĩa: Độ 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ị.
Theo định nghĩa, 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
Xử lý ảnh và điều khiển xe chạy tự động Trang 5



TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM ĐỒ ÁN TỐT NGHIỆP

(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 một mật độ (độ phân giải) nhưng diện tích màn hình rộng
hơn thì độ mịn (liên tục của các điểm) kém hơn.
c) 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 chúng ta xem xét một số khái niệm và thuật ngữ thường dùng
trong xử lý ảnh.
-

Đị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: 16, 32, 64, 128, 256 (Mức 256 là

mức phổ dụng. 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:
-

=256 mức, tức là từ 0 đến 255).

Ảnh đen trắng: là ảnh có hai màu đen, trắng (không chứa màu khác) với

mức xám ở các điểm ảnh có thể khác nhau.
-


Ảnh nhị phân: ảnh chỉ có 2 mức đen trắng phân biệt tức dùng 1bit mô tả

21mức khác nhau. Nói cách khác: mỗi điểm ảnh của ảnh nhị phân chỉ có thể là 0 hoặc 1.
-

Ảnh màu: trong khuôn khổ lý thuyết ba màu (Red, Blue, Green) để tạo nên

thế giới màu, người ta thường dùng 3 byte để mô tả mức màu, khi đó các giá trị màu:
=

≈ 16,7 triệu.

II.

Labview và xử lý ảnh dùng Labview

2.1

Giới thiệu Labview
LabVIEW là một ngôn ngữ lập trình hình ảnh do công ty National Instrument

(NI) phát triển. Nó sử dụng các biểu tượng thay cho các dòng lệnh để tạo ra một đoạn
chương trình. Trái ngược với các chương trình viết bằng các lệnh chữ, LabVIEW sử
dụng kiểu lập trình theo luồng dữ liệu (dataflow programming), nơi mà các luồng của
dữ liệu quyết định việc thực thi.
Trong LabVIEW, người xây dựng chương trình sử dụng sẽ xây dựng giao diện
người dùng bởi việc kéo các công cụ hay thực thể. Giao diện người dùng được hiểu là
phần khung mà người sử dụng sẽ thao tác. Sau đó người lập trình sẽ thêm các mã
Xử lý ảnh và điều khiển xe chạy tự động Trang 6



TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM ĐỒ ÁN TỐT NGHIỆP

chương trình bằng cách sử dụng các hàm được viết dưới dạng hình ảnh. Và các thành
phần này sẽ được viết trên một giao diện gọi là sơ đồ khối (block diagram).
LabVIEW là một công cụ mạnh mẽ, tích hợp đầy đủ các hàm phục vụ chuẩn
giao tiếp với các hệ thống thông dụng như: VXI, RS-232, USB, GPIB… LabVIEW
cũng được xây dựng để kết nối với các ứng dụng với các chuẩn của Web hay các nền
tảng ActiveX của Windows.
Sử dụng LabVIEW, người lập trình có thể xây dựng, kiểm tra, đo lường, trao đổi
dữ liệu, điều khiển… Từ việc mô phỏng trên máy tính cá nhân, người lập trình có thể
kiểm tra chất lượng, tốc độ sản phẩm. Sau đó, LabVIEW cho phép người sử dụng
nhúng các chương trình mang tính mô phỏng này lên hệ thống thực tế và thực thi trên
một hệ thống nhúng độc lập.
Các chương trình LabVIEW được gọi là các thiết bị ảo (Virtual InstrumentsVIs). Các thiết bị ảo bao gồm bốn phần chính: sơ đồ khối, khung trước, biểu tượng, và các
ô kết nối.
Người lập trình xây dựng khung trước bằng các khối điều khiển và hiển thị. Các
khối điều khiển có thể là các nút nhấn, thanh trượt, núm xoay… Các hiển thị có thể là
các biểu đồ, dòng text, LEDs, đồng hồ, nhiệt kế. Các khối điều khiển của LabVIEW
được xây dựng với các điều khiển gần giống với thực tế nhất có thể, chúng có nhiệm vụ
cung cấp dữ liệu cho việc xử lý, hỗ trợ người dùng dễ dàng thay đổi dữ liệu. Các hiển
thị có nhiệm vụ hiển thị dữ liệu sau khi xử lý tùy theo mục đích của người dùng.
Sau khi xây dựng khung trước, người lập trình cần xây dựng các thuật toán, thao
tác xử lý trên các sơ đồ khối. Sơ đồ khối của một chương trình bao gồm các biểu tượng
của các đoạn mã, các đầu cuối điều khiển, đầu cuối hiển thị, các cấu trúc điều khiển,
vòng lặp, hằng số, và các dây nối. Dây nối là thành phần quan trọng trong sơ đồ khối
để nối các thành phần lại với nhau. Các thành phần này phải có cùng kiểu dữ liệu ravào.
Các kết nối các thiết bị ảo hỗ trợ việc xây dựng các hàm con (SubVIs). Chúng
có thể được gọi ở các chương trình lớn hơn. Nhưng để sử dụng được các khối này,


Xử lý ảnh và điều khiển xe chạy tự động Trang 7


TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM ĐỒ ÁN TỐT NGHIỆP

người sử dụng cần xây dựng thêm các ô kết nối để định nghĩa kiểu dữ liệu vào ra cho
một hàm con đã xây dựng.
2.2

Ngôn ngữ lập trình Labview

2.2.1 Môi trường Labview
a) Hộp thoại khởi động
Khi mở labview sẽ xuất hiện hộp thoại như khởi động, tại đây người dùng chọn các
ứng dụng cần thiết đối với công việc cần thực hiện.
Hộp thoại sẽ cho người lập trình lựa chọn các tùy chọn chính sau.
- Create Project : tạo một dự án mới.
- Open Existing: mở các tệp hiện tại.
Có hai lựa chọn cần quan tâm và thiết yếu trong khi bắt đầu làm việc với
Labview .
- File

New VI : thiết l ập chương trình mới.

Hình 2.3 : Thi ết l ập chương trình mới.

Xử lý ảnh và điều khiển xe chạy tự động Trang 8


TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM ĐỒ ÁN TỐT NGHIỆP


- Help

Find Example : tìm các ví dụ.

Hình 2.4: Tìm các ví dụ

Được xây dựng một cách đầy đủ và hệ thống các ví dụ. Find Example sẽ giúp
người lập trình tìm được các code có sẵn hướng dẫn một cách nhanh chóng góp phần
cho người mới tiếp cận và xây dựng thuật toán một cách hiệu quả mang tính thực thi
cao.
Để tìm được các ví dụ này cần phải tìm kiếm đúng các từ khóa ứng với yêu cầu
của chương trình. Các ví dụ chỉ được tìm thấy khi các Kit đã được cài đặt và khả dụng
trong chương trình.
b) Các vòng lặp, điều kiện trong LabVIEW
Vòng lặp, cấu trúc điều kiện là một thành phần không thể thiếu trong vấn đề lập
trình. Trong LabVIEW các vòng lặp, điều kiện được tái hiện dưới dạng hình ảnh cấu
trúc. Sử dụng các cấu trúc trong sơ đồ khối giúp lặp lại các tiến trình, điều khiển dựa
vào điều kiện và cho các mục đích đặc biệt khác. LabVIEW có 5 vòng lặp, cấu trúc cơ

Xử lý ảnh và điều khiển xe chạy tự động Trang 9


TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM ĐỒ ÁN TỐT NGHIỆP

bản: vòng lặp While (While Loop), vòng lặp For (For Loop), cấu trúc Case (Case
Structure), cấu trúc chuỗi (Sequence Structure), nút cách thức (Formula Node).
-

Vòng lặp While có ký hiệu


trong bảng hàm. Tùy vào cách thức

thiết lập mà vòng lặp điều kiện sẽ có hai cách chạy như sau:

Hình 2.5 : Cách thiết lập thứ nhất cho vòng lặp While
-

Số lần lặp của vòng lặp để thực hiện chương trình con. Trong một

số ví dụ có thể sử dụng số lần lặp này để thực hiện các thao tác liên quan đến xử lý
con số tăng giảm theo từng yêu cầu bài toán.

-

Chương trình chỉ dừng khi nút stop được nhấn.
Cách thiết lập thứ 2.

Xử lý ảnh và điều khiển xe chạy tự động Trang 10


TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM ĐỒ ÁN TỐT NGHIỆP

-

Hình 2.6: Cách thiết lập thứ hai cho vòng lặp While
Số lần lặp của vòng lập để thực hiện chương trình con.

-


Vòng lặp chỉ thực hiện khi điều kiện đúng.

-

Vòng lặp For

Trong bảng hàm của LabVIEW vòng lặp for có ký hiệu

. Vòng lặp For sẽ

thực thi chương trình N lần với biến I tăng liên tục trong khoảng [0, N-1].

Xử lý ảnh và điều khiển xe chạy tự động Trang 11


TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM ĐỒ ÁN TỐT NGHIỆP

Hình 2.5: Vòng lặp For
- Cấu trúc Case
Cấu trúc Case của LabVIEW được ký hiệu

trong bảng hàm.

Hình 2.6 : Cấu trúc Case
Cấu trúc Case của LabVIEW cũng tương tự như cấu trúc Case trong C/C++.
Khi các điều kiện đặt vào

đúng thì sẽ thực hiện các chương trình con trong điều kiện

tương ứng.

- Cấu trúc chuỗi
Cấu trúc chuỗi trong LabVIEW dùng để tạo ra các đoạn chương trình con trong
các đoạn chương trình chính, mục đích của việc dùng cấu trúc này để gói gọn chương
trình và dễ dàng điều khiển việc sử dụng các biến, các ô nhớ. LabVIEW cung cấp hai
dạng chuỗi có cùng chức năng đó là: Chuỗi phẳng (Flat Sequence) và chuỗi ngăn xếp
(Stacked Sequence).

Hình 2.7 : Hai cách thể hiện của cấu trúc chuỗi

Các cấu trúc chuỗi đều thực thi các đoạn chương trình con bên trong nó. Các
chương trình con sẽ thực thi từ trái sang phải đối với chuỗi phẳng và thực thi từ ngăn

Xử lý ảnh và điều khiển xe chạy tự động Trang 12


TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM ĐỒ ÁN TỐT NGHIỆP

xếp thứ 0 đối với chuỗi ngăn xếp.
- Nút cách thức
Nút cách thức được ký hiệu

bên trong bảng hàm. Nút này là một hỗ trợ

đắc lực của LabVIEW đối với người lập trình. Với nút này người lập trình hoàn toàn có
thể viết ngôn ngữ C bên trong LabVIEW. Khi người sử dụng chưa hoàn toàn quen với
việc sử dụng LabVIEW, đây là một công cụ giúp người sử dụng không quá phụ thuộc
vào việc kết nối của LabVIEW.

Hinh 2.8 : Đoạn chương trình y=x2+x+1 viết theo hai cách


Ngoài các cấu trúc đã nêu ở trên bên trong thư viện lập trình của LabVIEW còn
có các cấu trúc khác hỗ trợ lập trình dễ dàng hơn trong LabVIEW như: cấu trúc vô hiệu
hóa khối (Diagram Disable Structure), cấu trúc vô hiệu hóa điều kiện
(Conditional Disable Structure), cấu trúc thời gian (Timed Structure)…
2.2.2 Xử lý ảnh trên Labview
Để hỗ trợ người dùng trong các lĩnh vực nhất định, National Instrument cung
cấp các gói phần mềm tương ứng nhằm hỗ trợ các hàm thông dụng, cũng như là các kết
nối vào ra tương ứng trên các KIT. Trong phần này người thực hiện đề tài sẽ giới thiệu
cơ bản nhất các hàm, các điều khiển và các hiển thị sử dụng trong phạm vi đề tài.
-

Thư viện VIsion trong bảng điều khiển

Như phần trên có đề cập, bảng điều khiển là nơi để xây dựng các khối hiển thị hay
điều khiển. Thư viện VIsion trong bảng điều khiển bao gồm:

Xử lý ảnh và điều khiển xe chạy tự động Trang 13


TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM ĐỒ ÁN TỐT NGHIỆP

- IMAQ Image.ctl dùng định nghĩa các mô tả về kiểu dữ liệu của
hình ảnh.
-

Hai khối Image Display Control và Image Display Control

(Classic) dùng để hiển thị các hình ảnh thu được. Sử dụng hay khối
này, người lập trình có thể theo dõi chi tiết từng điểm ảnh cũng như
thực hiện một số quát trình


xử lý cơ bản dùng cho mục đích sửa lỗi

chương trình.
Ngoài ra trong thư viện VIsion còn có các thư viện con như IMAQ
VIsion

Controls hay Machine VIsion Controls dùng để tạo các điều khiển thao

tác trực

tiếp trên VIs.
-

Thư viện “VIsion and Motion” trong bảng hàm

Về tổng quát thư viện VIsion trong bảng hàm có thư viện ứng với từng mục đích
cụ thể của xử lý ảnh như là: các thư viện giao tiếp thiết bị (NI-IMAQ, NIIMAQdx, NIIMAQ I/O), thư viện tiện ích (VIsion Utilities), thư viện xử lý ảnh
(Image Processing), thư viện thị giác máy (Machine VIsion), thư viện xử lý nhanh (VIsion
Express).

Xử lý ảnh và điều khiển xe chạy tự động Trang 14


TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM ĐỒ ÁN TỐT NGHIỆP

Hình 2.9: Đị a chỉ truy cập các hàm Vision
a. Thư viện thiết bị
Đây là thư viện mà người lập trình dùng để lấy thông tin từ Camera, cũng như là
lấy ảnh hay Video từ Camera. Thư viện này gồm các thư viện con là NI-IMAQ và NIIMAQdx. Tuy nhiên, hai thư viện NI-IMAQ và NI-IMAQdx tương tự nhau về chức

năng, tuy nhiên, khối NI-IMAQ chỉ điều khiển được các Camera từ các bo PCI của
National Instrument. Để sử dụng được các Camera hay Webcam từ máy tính hay các
Module khác cần chú ý thiết lập thông số với thư viện NI-IMAQdx.

Xử lý ảnh và điều khiển xe chạy tự động Trang 15


TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM ĐỒ ÁN TỐT NGHIỆP

Hình 2.10 : Thư viện thiết bị camera NI-IMAQdx
Về thu thập hình ảnh có các hàm đáng quan tâm sau.
-

Hàm Enumerate Cameras cho phép người dùng LabVIEW thống kê tất

cả các Camera đang được kết nối với máy tính hay Module sử dụng LabVIEW. Hàm này
cũng cung cấp tất cả các thông tin cơ bản về Camera như tên, loại, số series, cổng mà
camera đang kết nối…
-

Hàm Open dùng để mở Camera với cổng kết nối được lựa chọn từ hàm

Enumerate Cameras.
-

Hàm Configure Grab sẽ tạo các thiết lập ban đầu cho việc thu nhận ảnh

một cách liên tục (Grab).
-


Hàm Snap thực hiện việc chụp ảnh.

-

Hàm Grab thực hiện việc lấy ảnh liên tục. Tuy nhiên để lấy ảnh liên tục

cần có
giúp

vòng lặp vô hạn để hàm có thể lập lại.
Hàm Close sẽ đóng các giao điện kết nối mà người sử dụng muốn,
giải phóng tài nguyên cho việc điều khiển, trao đổi dữ liệu với Camera.

Xử lý ảnh và điều khiển xe chạy tự động Trang 16


TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM ĐỒ ÁN TỐT NGHIỆP

b. Thư viện tiện ích (VIsion Utilities)

Hình 2.11 : Thư viện tiện ích
Thư viện tiện ích (VIsion Utilities) cho phép người lập trình thực hiện các thao
tác cơ bản về biển đổi ảnh, mở ảnh, lưu ảnh, tìm kiếm ảnh… Nó bao gồm các thư viện
con: Thư viện quản lý ảnh (Image Management), thư viện tập tin (Files), thư viện hiển
thị ảnh (External Display), thư viện về vùng quan tâm (Region of Interest), thư viện
phục vụ thao tác người sử dụng (Image Manipulation và Pixel Manipulation), thư viện
phủ (Overlay), thư viện thước đo (Calibration), thư viện tiện ích màu (Color Utilities)
và thư viện cho các thiết bị thời gian thực (VIsion RT).
c. Thư viện quản lý ảnh


Xử lý ảnh và điều khiển xe chạy tự động Trang 17


TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM ĐỒ ÁN TỐT NGHIỆP

Hình 2.12 : Thư viện quản lý ảnh
Thư viện quản lý ảnh hỗ trợ lập trình về các xử lý biến đổi cơ bản của một ảnh,
tạo vùng nhớ tạm thời cho một ảnh… Thư viện này có một số hàm quan trọng mà hầu
hết các chương trình xử lý ảnh sử dụng LabVIEW đều phải sử dụng như:
-

IMAQ Create: tạo vùng nhớ tạm thời cho một ảnh. Đây là hàm mà tất cả

mọi chương trình xử lý ảnh với LabVIEW đều dùng. Nó cho phép phân hoạch một
vùng nhất định trên bô nhớ để thực hiện xử lý.

Hình 2.13: Sơ đồ chân hàm IMAQ Create
Hàm này yêu cầu người sử dụng phải đặt tên cho ảnh cần tạo tại đầu vào
Image Name. Tên này không phải là tên hiển thị của ảnh mà chỉ là tên để phân biệt
vùng nhớ tạm thời của các ảnh khác nhau. Ngoài ra, bằng việc thay đổi loại ảnh
(Image Type) mà người lập trình hoàn toàn có được một số ảnh chuẩn của LabVIEW như
ảnh xám, ảnh màu RGB hay ảnh màu HSI…
-

Trái ngược với IMAQ Create, IMAQ Dispose sẽ hủy vùng nhớ tạm

thời đã cấp cho ảnh (Image) tương ứng hoặc người lập trình có thể chọn hủy tất cả các
ảnh bằng cách đặt chế độ đúng (Yes) cho chân “All Image?” . Hàm này cần thiết khi
người lập trình thao tác với nhiều ảnh mà tài nguyên bộ nhớ máy thấp.


Hình 2.14 : Sơ đồ chân hàm IMAQ Dispose
-

IMAQ GetImageInfo trả về tất cả thông tin của ảnh như độ phân giải

ngang (X Resolution), độ phân giải dọc (Y Resolution), loại ảnh (Image Type), đơn vị
đo lường ảnh (Unit)…

Xử lý ảnh và điều khiển xe chạy tự động Trang 18


TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM ĐỒ ÁN TỐT NGHIỆP

Hình 2.15 : Sơ đồ chân hàm IMAQ GetImageInfo
-

IMAQ GetImageSize trả về độ phân giải lớn nhất của ảnh về chiều

ngang (X Resolution) và chiều dọc (Y Resolution).

Hình 2.16 : Sơ đồ chân hàm IMAQ GetImageSize
-

IMAQ Copy sẽ hỗ trợ người sử dụng khi muốn xử lý trên ảnh gốc,

và sau khi xử lý cần đem so sánh với ảnh lúc ban đầu. Khối IMAQ Copy sẽ tạo một
ảnh nhân bản, việc xử lý sẽ không ảnh hưởng đến ảnh gốc lúc đầu.

Hình 2.17:Sơ đồ chân hàm IMAQ Copy
Khi sử dụng khối IMAQ Copy, ảnh nguồn (Image Scr) là ảnh cần sao chép, ảnh

đích (Image Dst) là vùng nhớ tạm thời cung cấp cho ảnh đích. Ảnh đích ngõ ra (Image
Dst Out) là ảnh đã sao chép. Ảnh nguồn và ảnh đích ngõ ra giống nhau nhưng không có
liên kết với nhau.
d. Thư viện quản lý tập tin

Xử lý ảnh và điều khiển xe chạy tự động Trang 19


TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM ĐỒ ÁN TỐT NGHIỆP

Hình 2.18: Thư viện quản lý tập tin
Thư viện quản lý tập tin hỗ trợ người sử dụng thao tác với các tập tin hình ảnh
được lưu trên ổ đĩa cứng như: lưu ảnh, mở ảnh, mở hộp thoại lưu ảnh, lấy thông tin
ảnh…
-

IMAQ ReadFile cho phép đọc hầu hết các định dạng ảnh được lưu trên ổ

đĩa cứng như (BMP, TIFF, JPEG, JPEG2000, PNG và AIPD). Khi sử dụng IMAQ
ReadFile cần đưa vào bộ nhớ đệm được tạo sẵn từ khối IMAQ Create và đưa vào chân
hình ảnh (Image), đường dẫn (File Path) là các ký tự chỉ vị trí ảnh được lưu

Hình 2.19: Sơ đồ chân hàm IMAQ ReadFile
-

IMAQ WriteFile sẽ ghi ảnh từ bộ nhớ đệm xuống một đường dẫn

có sẵn. Ảnh từ bộ nhớ đệm sẽ được đưa vào ngõ ảnh (Image). Ngõ ảnh và đường dẫn
(File Path) là hai giá trị bắt buộc phải đưa vào.


Hình 2.20: Sơ đồ chân hàm IMAQ WriteFile
-

IMAQ GetFileInfo sẽ cho các thông tin về ảnh như độ phân giải (X

Xử lý ảnh và điều khiển xe chạy tự động Trang 20


TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM ĐỒ ÁN TỐT NGHIỆP

Resolution và Y Resolution), loại tập tin (File Type), loại ảnh (Image Type) cũng như là
loại dữ liệu của ảnh (File Data Type).

Hình 2.21: Sơ đồ chân hàm IMAQ GetFileInfo
e. Thư viện tiện ích màu

Hình 2.22: Thư viện tiện ích màu
Thư viện tiện ích màu sẽ hỗ trợ người dùng, trích xuất một không gian của 1 bức
ảnh màu, thay thế màu, đặt màu, chuyển các ảnh màu thành chuỗi và ngược lại… Đây
là một công cụ xử lý lúc đầu nếu như người lập trình muốn thao tác trên ảnh màu.
Thư viện này có một số hàm đáng chú ý:
-

IMAQ ExtractColorPlanes cho phép người lập trình lấy ra các mô hình màu

(RGB, HSL, HSV hay HIS) từ một bức ảnh đã lưu được.

Xử lý ảnh và điều khiển xe chạy tự động Trang 21



TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM ĐỒ ÁN TỐT NGHIỆP

Hình 2.23: Sơ đồ chân hàm IMAQ ExtractColorPlanes
Với hàm IMAQ ExtractColorPlanes thì chỉ cần đưa ảnh vào ở nguồn ảnh (Image
Scr) và lựa chọn một trong các mô hình trên thì các ngõ ra tương ứng là các thành phần
tương ứng của một bức ảnh mà mô hình màu thể hiện. Và để đơn giản hơn cho việc sử
dụng hàm, có thể sử dụng hàm IMAQ ExtractSingleColorPlane để trích xuất một thành
phần của ảnh.
-

Để có giá trị của các thành phần R, G, B của từng điểm ảnh tùy thuộc vào

tọa độ (X Coordinate và Y Coordinate), người lập trình có thể dùng hàm IMAQ
GetColorpixel. Hay người lập trình cũng có thể thiết lập lại giá trị của thành phần R, G,
B của điểm ảnh với hàm IMAQ SetColorpixel.

Hình 2.24: Sơ đồ chân hàm IMAQ GetColorPixel
f. Thư viện xử lý ảnh

Hình 2.25: Thư viện xử lý ảnh
Thư viện xử lý ảnh trong LabVIEW cung cấp tương đối đầy đủ cho người
lập trình các hàm cơ bản để xử lý ảnh như: các hàm lấy ngưỡng, tìm ngưỡng, biến đổi
ngưỡng, các bộ lọc ảnh, các phép biến đổi hình thái, các phép phân tích ảnh, các xử lý
ảnh màu, các phép toán ảnh, các biến đổi trên miền tần số…

Xử lý ảnh và điều khiển xe chạy tự động Trang 22


TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM ĐỒ ÁN TỐT NGHIỆP


-

IMAQ MultiThreshold là phép biến đổi đa ngưỡng. Tất cả các giá trị

của điểm ảnh nằm trong ngưỡng do người sử dụng quy định sẽ được biến đổi về giá trị
định trước, các điểm ngoài ngưỡng sẽ về giá trị 0.

Hình 2.26: Sơ đồ chân hàm IMAQ MultiThreshold
Hàm IMAQ MultiThreshold gồm hai ngõ vào bắt buộc là: nguồn ảnh cần biến
đổi (Image Src), và ngưỡng cần lấy (Threshold Data). Ảnh sau khi biến đổi ngõ ra
(Image Dst Out) sẽ là ảnh nguồn sau khi biến đổi, hoặc ảnh tham chiếu ngõ vào
(Image Dst) nếu ảnh tham chiếu ngõ vào được kết nối.
-

IMAQ Multiply là phép toán cho phép bạn tỉ lệ thức giữ hình ảnh

muốn hiệu chỉnh với hình ản gốc với hệ số nhân.

Hình 2.27: IMAQ Multiply
Để thay đổi mức tỉ lệ thức theo mức số nhân dựa vào tỉ lệ Constant đưa vào.
-

IMAQ Absolute Difference cho phéo ta phổi hợi các hình hảnh đã hiệu

chỉnh lại với nhau.

Xử lý ảnh và điều khiển xe chạy tự động Trang 23


TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM ĐỒ ÁN TỐT NGHIỆP


Hình 2.28: IMAQ Absolute Difference
Thư viện thị giác máy

Hình 2.29 : Thư viện thị giác máy
Thư viện thị giác máy cung cấp các hàm hỗ trợ một số tác vụ xử lý trên các hệ
thống xử lý, phân tích ảnh như: thư viện vùng quan tâm, thư viện tọa độ, đếm và đo
lường vật thể, tìm kiếm mẫu, thước đo… Trong khuôn khổ đề tài đồ án, người thực
hiện xin trình bày một số hàm sử dụng như sau:
-

IMAQ Find Patterm 3 cho phép tìm kiếm hình ảnh từ hình đã xác

định trước.

Xử lý ảnh và điều khiển xe chạy tự động Trang 24


TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM ĐỒ ÁN TỐT NGHIỆP

Hình 2.30: IMAQ Find Patterm 3


là hình ảnh được đưa vào để tìm kiếm. Hình này có thể


hình đã lưu trong thư mục hoặc lưu tạm thời trên bộ nhớ, nếu lưu tạm thời thì khi bắt
đầu tìm kiếm thì hàm sẽ yêu cầu và dừng chương trình vì thế khi bắt đầu chương trình
phải tạo thư viện ảnh cho hàm.


hoặc

hình ảnh ta muốn thực thi lên. Có thề là hình ảnh
camera.


Ngõ vào này được thiết lập khi muốn có các giá trị

tìm kiếm như tọa độ, góc quay. Bắt buộc phải thực hiện lệnh này để hiện thị khi tìm thấy
các giá trị mong muốn và định dạng giá trị ngõ ra .


cho phép người dùng thực hiện cài đặt tìm kiếm của mình

như số ảnh có thể tìm kiếm, mức độ chình xác. Thay đổi trong quá trình thực nghiệm là
điều cần thiết khi hoạt động trên các loại môi trường khác nhau.


hiện thị các giá trị đã thiết lập. Giá trị hiển thị sẽ cung cấp

đầy đủ các yêu cầu sau khi quá trình tìm kiếm kết thúc và dựa vào số liệu này ta có thể
thiết lập các chương trình tiếp theo để hoàn thiện chương trình.
2.2.3 Cấu trúc lập trình xử lý và xuất giá trị trong Labview

Xử lý ảnh và điều khiển xe chạy tự động Trang 25


×