Tải bản đầy đủ - 0 (trang)
Hình 1.26:Mô hình màu YIQ.

Hình 1.26:Mô hình màu YIQ.

Tải bản đầy đủ - 0trang

Đồ án tốt nghiệp



GVHD: ThS. Trần Văn Trinh



Để hiển thị một ảnh ta có thể dùng hàm imview hiển thị ảnh nằm trong

Workspace của Matlab. Ví dụ:



ricesfig = inread(‘rices.jpg’); % Đọc ảnh vào

imview (ricesfig)

Hàm imview chỉ hiện thị ảnh nằm trong thư mục làm việc của Matlab hoặc

đường dẫn. Nếu dùng hàm imview mà không chỉ ra thông số nào thì nó sẽ mở ra hộp

thoại cho ta chọn file cần hiện thị.



* Dùng hàm imshow

Nếu ta chỉ ra một file mà chứa nhiều ảnh, hàm imview chỉ hiển thị ảnh đầu tiên

trong file đó. Để xem tất cả các ảnh trong file, sử dụng hàm imread để nhập mỗi ảnh

vào trong khơng gian làm việc của Matlab sau đó gọi hàm imview nhiều lần để hiển

thị mỗi ảnh riêng biệt. Ta có thể sử dụng hàm imshow thay cho imview. Ta sử dụng

imshow để hiển thị một ảnh đã được nhập vào trong khơng gian làm việc. Ví dụ :



ricesfig = inread(‘rices.jpg’); % Đọc ảnh vào

imshow (ricesfig)

Ta cũng có thể chỉ ra tên của file ảnh như một tham số truyền vào cho hàm như

sau :



imshow (‘rices.jpg’)

Khi sử dụng cấu trúc này thì dữ liệu ảnh khơng được nhập vào trong khơng gian

làm việc. Tuy nhiên ,ta có thể mang ảnh vào trong không gian làm việc bằng cách sử

dụng hàm getimage. Hàm này sẽ nhận dữ liệu ảnh từ handle của một đối tượng ảnh

hiện tại. Chẳng hạn :



ricefig = getimage;

Lúc này ảnh sẽ được gán vào biến ricefig

 Các hàm chuyển đổi kiểu ảnh:

Các hàm sau đây được sử dụng trong việc convert ảnh :

dither: Tạo một ảnh nhị phân từ một ảnh cường độ đen trắng



VD: BW = dither(I) % Với I là một ảnh đen trắng.

Tạo một ảnh chỉ số từ một ảnh RGB



Vd: X = dither(RGB,MAP) % Ảnh chỉ số MAP không hơn 65536

màu.

Võ Hồng Trơvi – Nguyễn Sĩ Bích



51



Đồ án tốt nghiệp



GVHD: ThS. Trần Văn Trinh



- gray2ind: Tạo một ảnh chỉ số từ một ảnh cường độ đen trắng.

Vd: I = imread('cameraman.tif');

[X, map] = gray2ind(I, 16);

figure, imshow(X, map);

- grayslice: Tạo một ảnh chỉ số từ một ảnh cường độ đen trắng bằng cách đặt

ngưỡng.



Vd: I = imread('snowflakes.png');

X = grayslice(I,16);

figure, imshow(I), figure, imshow(X,jet(16))

- im2bw: Tạo một ảnh nhị phân từ một ảnh cường độ , ảnh chỉ số hay ảnh

RGB bằng cách đặt ngưỡng ánh sáng.



Vd: BW = im2bw(X,map,0.4); % Ngưỡng 0.4

figure, imshow(X,map), figure, imshow(BW)% Hiển thị

- ind2gray: Tạo một ảnh cường độ đen trắng từ một ảnh chỉ số.

Vd: I = ind2gray(X,map);

figure, imshow(X,map), figure, imshow(I);

- ind2rgb: Tạo một ảnh RGB từ một ảnh chỉ số.

- mat2gray: Tạo một ảnh cường độ đen trắng từ dữ liệu trong một ma trận

bằng cách lấy tỉ lệ giữ liệu.



Vd: I = imread('rice.png');

J = filter2(fspecial('sobel'), I);

K = mat2gray(J);

figure, imshow(I), figure, imshow(K)

- rgb2gray: Tạo một ảnh cường độ đen trắng từ một ảnh RGB.

Vd: I = imread('board.tif');

J = rgb2gray(I);

figure, imshow(I), figure, imshow(J);

- rgb2ind: Tạo một ảnh chỉ số từ một ảnh RGB.

Vd: RGB = imread('peppers.png');

Võ Hồng Trơvi – Nguyễn Sĩ Bích



52



Đồ án tốt nghiệp



GVHD: ThS. Trần Văn Trinh



[X,map] = rgb2ind(RGB,128);

figure, imshow(X,map)

 Hàm lấy biên : khoanh vùng biên vật như những lỗ trống trên nền ảnh.



- B = Bwboundaries(BW).

Vd: I = imread('rice.png');

BW = im2bw(I, graythresh(I));

[B,L] = bwboundaries(BW,'noholes');

imshow(label2rgb(L, @jet, [.5 .5 .5]))

hold on

for k = 1:length(B)

boundary = B{k};

plot(boundary(:,2), boundary(:,1), 'w', 'LineWidth', 2)

end

1.4.1.4 Hệ thống toạ độ:

Một ảnh được cấu tạo từ ma trận các điểm ảnh. Các điểm ảnh trong một ảnh

được sắp xếp có trật tự riêng. Do đó vị trí của một điểm ảnh cũng sẽ có tọa độ riêng

trong ảnh đó. Trong Matlab thì có hai hệ tọa độ là tọa độ pixel và tọa độ không gian.



* Tọa độ pixel

Phương pháp thuận tiện nhất cho việc biểu diễn vị trí trong một ảnh là sử dụng

tọa độ pixel. Trong hệ tọa độ này, ảnh được xem như một lưới của các phần tử riêng

biệt được đánh thứ tự từ trên xuống dưới và từ trái sang phải của khung ảnh.

Với toạ độ pixel, thành phần đầu tiên r ( hàng ) được tăng từ khi đi từ trên

xuống dưới trong khi c ( cột ) được tăng khi đi từ trái sang phải. Hệ toạ độ pixel là giá

trị nguyên và khoảng giữa 1 và chiều dài của hàng hay cột.

Có một tương ứng giữa tọa độ pixel và tọa độ Matlab sử dụng để mô tả ma trận.

Sự tương ứng này tạo một quan hệ gữa ma trận dữ liệu ảnh và cách ảnh được hiển thị.

Chẳng hạn, dữ liệu cho pixel trên hàng thứ 10, cột thứ 2 được lưu trữ tại phần từ (10,2)

của ma trận .



* Tọa độ khơng gian

Võ Hồng Trơvi – Nguyễn Sĩ Bích



53



Đồ án tốt nghiệp



GVHD: ThS. Trần Văn Trinh



Trong hệ toạ độ pixel, một pixel được xử lý như một đơn vị riêng rẽ được phân

biệt duy nhất bởi một cặp tọa độ chẳng hạn (10,2). Trong tọa độ khơng gian, vị trí

trong một ảnh được định vị trên một mặt phẳng và chúng được mô tả bằng một cặp x

và y ( không phải r và c như toạ độ pixel ) .

Hệ tọa độ không gian này gần tương ứng với hệ toạ độ pixel trong một chừng

mực nào đó. Trong tọa độ pixel, góc trên trái của một ảnh là (1,1 ) trong khi trong tọa

độ khơng gian, vị trí này mặc định là (0.5,0.5 ). Sự khác nhau này là do hệ tọa độ pixel

là rời rạc trong khi tọa độ không gian là liên tục. Góc trên trái ln là (1,1 ) trong hệ

pixel, nhưng ta có thể chỉ ra một điểm gốc khơng chính quy cho hệ tọa độ khơng gian.

Tọa độ pixel được đại diện bởi một cặp (r,c ) trong khi tọa độ không gian được biểu

diễn bởi (x,y). Khi cú pháp cho một hàm sử dụng r và c, nó tham chiếu đến hệ tọa độ

pixel. Khi cú pháp sử dụng x, y nó đang ngầm định sử dụng hệ tọa độ không gian .

Theo mặc định, tọa độ không gian của một ảnh tương ứng với tọa độ pixel.

Chẳng hạn, điểm giữa của pixel tại (10,3) có một toạ độ không gian là x=3, y=10. Sự

tương ứng này làm đơn giản nhiều hàm trong toolbox. Một vài hàm ban đầu làm việc

với toạ độ không gian hơn là toạ độ pixel nhưng khi ta đang sử dụng toạ độ khơng gian

theo mặc định, ta có thể chỉ ra vị trí trong toạ độ pixel.



3.1.5 Phân tích ảnh:

Trong kỹ thuật phân tích ảnh thì có rất nhiều bước khác nhau, nhưng với yêu

cầu của luận văn chúng tôi xin trình bày hai bước cơ bản trong khâu phân tích một

ảnh. Đó là: phát hiện cạnh ( Edge Detection) và tìm biên của vật ( Boundary Tracing).



* Phát hiện cạnh:

Matlab hỗ trợ hàm Edge để phát hiện các cạnh trong một ảnh mà tương ứng với vùng

biên của các đối tượng. Để tìm cạnh, hàm này tìm các vị trí trong ảnh có giá trị cường

độ thay đổi rất nhanh sử dụng một trong những tiêu chuẩn sau :

- Các vị trí mà tích phân đầu của cường độ lớn hơn biên độ của một số ngưỡng

nào đó Các vị trí mà tích phân thứ hai của cường độ giao với 0

Hàm edge cung cấp một số bộ ước lượng tích phân, mỗi cái ứng dụng một trong các

định nghĩa trên. Với một số bộ ước lượng này, ta có thể chỉ ra các thao tác có nhạy với



Võ Hồng Trơvi – Nguyễn Sĩ Bích



54



Đồ án tốt nghiệp



GVHD: ThS. Trần Văn Trinh



cạnh nằm nganh, nằm dọc hoặc cả hai hay không. Hàm trả về một ảnh nhị phân chứa

giá trị 1 tại nơi cạnh được tìm thấy và 0 ở các chỗ khác.

- Phương pháp phát hiện cạnh mạnh nhất mà hàm edge cung cấp là phương

pháp Canny . Phương pháp này khác với các phương pháp khắc ở chỗ nó sử dụng hai

giá trị ngưỡng khác nhau (để phát hiện cạnh mạnh hay yếu ) và bao gồm các cạnh yếu

ở ảnh ra chỉ nếu chúng được kết nối với các cạnh khoẻ ( strong edges ) .

- Ví dụ sau minh hoạ phát hiện cạnh bằng phương pháp Canny:

Ảnh gốc



Ảnh sau phát hiện cạnh



- Ví dụ sau minh họa phát hiện cạnh bằng phương pháp Sobel:



*



Tìm vết



của biên ( Boundary Tracing )



- Toolbox cung cấp hai hàm ta có thể sử dụng để tìm biên của các đối tượng

trong một ảnh :

+ Hàm bwtraceboundary

Hàm bwboundaries:



Võ Hồng Trơvi – Nguyễn Sĩ Bích



55



Đồ án tốt nghiệp



GVHD: ThS. Trần Văn Trinh



* Tìm biên:

Hàm bwtraceboundary trả lại toạ độ hàng và cột của tất cả các pixel trên biên

của một đối tượng trong ảnh. Ta phải chỉ ra vị trí của một pixel biên trên đối tượng như

là điểm bắt đầu của việc tìm vết.



1.4.2 OPC Toolbox của MATLAB

1.4.2.1 Sơ lược OPC Toolbox:

Phần mềm OPC Toolbox là một phần mềm mở rộng khả năng trong môi trường

MATLAB và SIMULINK. Sử dụng những hàm và khối trong Toolbox chúng ta có thể

MATLAB



thu được dữ liệu liệu trực tiếp từ OPC vào MATLAB và SIMULINK, và khi dữ liệu

trực tiếp từ MATLAB vào OPC Server. OPC Toolbox có khả năng liên kết trực tiếp

với các phần mềm OPC server bằng OPC Data Access Standard.

OPC Toolbox



Server Computer



Sử dụng OPC Toolbox chúng ta có thể ghi dữ liệu từ OPC Data Access

M –hoặc

file funtions

Server vào đĩa

bộ nhớ. Toolbox cungOPC

cấpServer

những cách để thu dữ liệu vào



workspace OPC

và chúng

ta Engine

có thể phân tích hoặc sử dụng chúng.

Toolbox

ChúngOPC

ta có

tăng cường những ứngOPC

dụng

với

Toolbox với việc sử

Datathể

Access

Data

Access

dụng hàm callback như: bắt đầu nhận sự kiện, khai báo sự kiện, thay đổi sự

COM/DCOM



COM/DCOM



kiện…



Network



Võ Hồng Trơvi – Nguyễn Sĩ Bích



Quan hệ giữa OPC Toolbox Object với OPC Server



56



Đồ án tốt nghiệp



GVHD: ThS. Trần Văn Trinh



1.4.2.2 Sử dụng OPC Toolbox:

Để có thể sử dụng OPC Toolbox cần phải cài đặt OPC Foundation Core

Compornents. Sau khi cài đặt có thể sử dụng các tool trong OPC Toolbox. Khởi động

OPC Toolbox ta chạy chương trình MATLAB vào Start \Toolboxs\OPC\OPC.



Sau khi chạy OPC Toolbox ta được cửa sổ như trên. Ta cần phải tạo Host để

liên kết với OPC Server.



Võ Hồng Trơvi – Nguyễn Sĩ Bích



57



Đồ án tốt nghiệp



GVHD: ThS. Trần Văn Trinh



Khi tạo host thì mặc định tên host đầu tiên là lcallhost. Chương trình sẽ tự động

liệt kê những OPC server trên máy. Trong hình trên em sử dụng phần mềm OPC

Server là PC Access để liên kết với PLC S7 – 200. Để tạo Matlab OPC Client chúng ta

cần phải chọn Server, sau đó click chuột phải vào menu Create Client. Kết quả như

hình dưới đây:



Võ Hồng Trơvi – Nguyễn Sĩ Bích



58



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Hình 1.26:Mô hình màu YIQ.

Tải bản đầy đủ ngay(0 tr)

×