3.7.2.1 Hàm vision.VideoFileReader
Hàm này có chức năng đọc các hình ảnh và âm thanh từ các file video hoặc các file ảnh.
Cú pháp:
videoFReader=vision.VideoFileReader(FILENAME) hoặc
videoFReader=vision.VideoFileReader(Filename,Name,Value)
Định dạng tập tin mà hàm có thể thực hiện phụ thuộc vào hệ điều hành mà bộ công cụ được cài đặt. Tuy nhiên với tập tin có đuôi là .avi thì hàm có thể thực thi trên tất cả các hệ điều hành. Với hệ điều hành windows, các hàm chỉ thực thi các filename có đuôi là: .jpg, .bmp, .mpeg, .mp2, .mpg, .mp4, m4v, .mj2, .wmv, .asf, .asx, .wav, .aif, .aiff, .aifc, .mp3.
3.7.2.2 Hàm vision.VideoPlayer
Hàm này dùng để mở một video hoặc hiển thị hình ảnh. Cú pháp
videoPlayer = vision.VideoPlayer
videoPlayer = vision.VideoPlayer(Name,Value) Để hiển thị một video frames cần thực hiện:
36 o Gọi lệnh step. Theo cú pháp step(videoPlayer,I), trong đó I là đối
tượng cần hiển thị trong video player. Ví dụ:
% Doc mot hinh anh tu file video va tao doi tuong mo file. videoFReader = vision.VideoFileReader('videothucte_0002.avi'); videoPlayer = vision.VideoPlayer;
% Mo file. Moi lenh goi step se doc mot khung hinh. while ~isDone(videoFReader)
frame = step(videoFReader); step(videoPlayer,frame); end
% Dong doi tuong. release(videoFReader); release(videoPlayer);
Kết quả:
Hình 3. 11 Mở file video dùng vision.VideoPlayer
Để chèn đối tượng vào video player, Computer Vision System Toolbox hổ trợ các hàm:
insertText Chèn text. insertShape Chèn hình dạng.
insertMaker Chèn đánh dấu vào trong ảnh hoặc video. insertObjectAnnotation Chèn chú thích đúng màu vào dòng video.
3.7.2.3 Hàm vision.ImageFilter
Thực hiện lọc ma trận đầu vào dùng bộ lọc 2D FIR. Cấu trúc:
37 H = vision.ImageFilter hàm này trả về đối tượng hệ thống H.
H = vision.ImageFilter(Name,Value)
3.7.2.4 Hàm vision.Autotheresholder
Đây là hàm chuyển đổi ảnh cường độ sang ảnh nhị phân, sử dụng phương pháp Otsu. Xác định ngưỡng bằng cách chia tách hoành đồ của ảnh đầu vào để giảm thiểu sai số. Cấu trúc lệnh H = vision.Autothresholder H = vision.Autothresholder(Name,Value) Ví dụ: img = im2single(rgb2gray(imread('peppers.png'))); imshow(img); hautoth = vision.Autothresholder; bin = step(hautoth,img); pause(2); figure;imshow(bin); Kết quả: Hình 3. 12 Ảnh cường độ
38
Hình 3. 13 Ảnh nhị phân
3.7.2.5 Hàm vision.LocalMaximaFinder
Hàm tìm cực đại địa phương trong ma trận. Sau khi thiết lập các thuộc tính của ma trận đầu vào, sử dụng cú pháp IDX = step(H,I) hoặc [...] = step(H,I,THRESH) trong đó THRESH là ngưỡng, để tìm vị trí có giá trị cực đại trong ma trận.
Cấu trúc lệnh H = vision.LocalMaximaFinder(Name,Value) H = vision.LocalMaximaFinder(Name,Value) H = vision.LocalMaximaFinder(MAXNUM,NEIGHBORSIZE,Name,Value) Ví dụ: >> I = [0 0 0 0 0 0 0 0 0 0 0 0; ... 0 0 0 1 1 2 3 2 1 1 0 0; ... 0 0 0 1 2 3 4 3 2 1 0 0; ... 0 0 0 1 3 5 7 5 3 1 0 0; ... 0 0 0 1 2 3 4 3 2 1 0 0; ... 0 0 0 1 1 2 3 2 1 1 0 0; ... 0 0 0 0 0 0 0 0 0 0 0 0]; hLocalMax = vision.LocalMaximaFinder; hLocalMax.MaximumNumLocalMaxima = 1;
39 hLocalMax.NeighborhoodSize = [3 3]; hLocalMax.Threshold = 1; location = step(hLocalMax, I) location = 7 4 3.7.2.6 Hàm vision.HoughLines
Hàm xác định toạ độ Đề các của đường thẳng trong ảnh, được diễn tả bởi cặp tham số rho và theta. Đối tượng đầu vào là các cặp rho và theta của ảnh tham chiếu. Đối tượng đầu ra là các vị trí của hàng và cột của các giao điểm giữa các đường thẳng và đường bao của ảnh tham chiếu. Các đường bao là biên dọc bên trái và bên phải và biên ngang của phía trên và phía dưới của ảnh tham chiếu.
Cấu trúc lệnh:
H = vision.HoughLines
H = vision.HoughLines(Name,Value)
Ví dụ: Xác định đường thẳng dài nhất trong ảnh.
Hình 3. 14 Ảnh circuit.tif
I = imread('circuit.tif'); hedge = vision.EdgeDetector;
hhoughtrans = vision.HoughTransform(pi/360,'ThetaRhoOutputPort', true); hfindmax = vision.LocalMaximaFinder(1, 'HoughMatrixInput', true);
hhoughlines = vision.HoughLines('SineComputation','Trigonometric function');
BW = step(hedge, I);
[ht, theta, rho] = step(hhoughtrans, BW);
linepts = step(hhoughlines, theta(idx(1)-1), rho(idx(2)-1), I); imshow(I); hold on;
40 line(linepts([1 3])-1, linepts([2 4])-1,'color',[1 1 0]);
Kết quả:
Hình 3. 15 Đường thẳng dài nhất trong ảnh
3.7.2.8 Hàm vision.ColorSpaceConverter
Hàm chuyển đổi thông tin giữa các không gian màu. Cấu trúc lệnh
H = vision.ColorSpaceConverter
H = vision.ColorSpaceConverter(Name,Value)
Ví dụ: Chuyển đổi ảnh RGB sang không gian màu cường độ.
i1 = imread('pears.png'); imshow(i1); hcsc = vision.ColorSpaceConverter; hcsc.Conversion = 'RGB to intensity'; i2 = step(hcsc, i1); pause(2); imshow(i2); Kết quả:
41
Hình 3. 16 Ảnh RGB
42