Module giao diện chính

Một phần của tài liệu đồ án tốt nghiệp chương trình với phương pháp phân tích fractal signature (Trang 64 - 68)

Giao diện chính đƣợc thiết kế đơn giản với một số chức năng chính nhƣ sau:

Vùng hiển thị ảnh gốc Vùng hiển thị ảnh kết quả

Chọn phân tích kiểu FS Chọn ảnh mới Chọn phân tích kiểu Top- down Mơ phỏng FS

Số hóa bởi Trung tâ

Hình 33: Giao diện chính

m Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

ng uồn:

Một số mã nguồn sự kiện cho các Button chính trên giao diện chính (cài dặt trong Matlab)

- Button chọn ảnh:

function pushbutton1_Callback(hObject, eventdata, handles)

% Hop thoai chon uong dan?

[fname,pname] = uigetfile('*.jpg','Hay chon mot anh da cap xam');

if fname~=0 % da chon 1 file

set(handles.path,'String',[pname,fname]); % hien thi duong dan cua file anh axes(handles.anhgoc);

imshow([pname,fname]); axes(handles.anhdich);

end

- Button Top-Down

function pushbutton2_Callback(hObject, eventdata, handles)

imshow('anhmau\running.jpg') pause(0.5)

filename=get(handles.path,'string');

topdown % Gọi chương trình con TOPDOWN clear all

- Button Fractal Signature

function pushbutton3_Callback(hObject, eventdata, handles)

imshow('anhmau\running.jpg') pause(0.5)

filename=get(handles.path,'string');

Fsign % Gọi chương trình con Fractal signature clear all

III.2.4. Module phân tích Top-down (TD)

Thuật tốn phân tích TD đƣợc thiết kế theo kiểu đệ quy, và cần tham số chiều cao của font chữ. Để tính chiều cao của font chữ có 2 giải pháp

- Một là cho phép ngƣời sử dụng nhập vào. - Hai là tự động dị theo thuật tốn sau:

B1: Tính lƣợc đồ chiếu nghiên theo phƣớc thẳng đứng

B2: Tìm độ rộng xuất hiện nhiều nhất của các “cột” trong lƣợc đồ chiếu nghiêng, đây xấp xỉ bằng chiều cao của font chữ.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

65

h tt p : // ww w . l r c - t nu . e du . v n

Ảnh vào Lƣợc đồ chiếu đứng

Thuật tốn phân tích TD đƣợc thiết kế theo kiểu đệ quy, và cần tham số chièu cao của font chữ.

Thuật tốn phân tích TD đƣợc thiết kế theo kiểu đệ quy, và cần tham số chièu ~k ~k ~k ~y Cột

Thành phần độ rộng ≈k xuất hiện nhiều nhất => k là chiều cao của font chữ

Trong đề tài này việc xác định chiều cao đƣợc dò tự động theo phƣơng pháp trên.  Giải t huật T op -Down

Input: Ảnh đa cấp xám I kích thƣớc m x n, chiều cao font chữ k Output: Ảnh đã đƣợc phân đoạn văn bản và đồ

họa. Thuật toán:

Proceduce Topdown (I,x,y,m,n,k) // I là ảnh đầu vào, m và n là kích thƣớc vùng ảnh // k chiều cao font chữ

// x,y là tọa độ hàng và cột

// của điểm ảnh góc trái trên cùng

Begin

B1: Tính lƣợc đồ chiếu đứng cho ảnh I đƣợc kết quả là mảng A gồm m phần tử B2: Xác định các “cột” trên lƣợc đồ A

For (mỗi cột(i) trong lƣợc đồ A) do IF độ rộng cột(i) ≈ k then

Khoanh vùng trên ảnh tại vị trí của cột(i) chiều dài n là vùng văn bản; Else

End

B2.1: Tính lƣợc đồ chiếu ngang cho vùng ảnh chứa cột(i) đƣợc

kết quả là mảng B gồm n phần tử

B2.2: Xác định các cột trên B

IF nếu số cột của A = 1 và số cột của B = 1 then khoanh vùng là Ảnh; Else

For mỗi Cột(j) trên B do

TopDown(I, x(cột(i)), y(cột(j)), độ rộng(cột(i)), độ rộng(cột(j)), k);

End for End if End if End if End for  Mã nguồn: function ketqua=phantichtrong(start,limit,letrai,lephai,anh,nguongtach,chieu_cao_hang) y=anh; chieucao=limit; chieurong=lephai;

%Phan nguong va tim hinh chieu doc

% z=zeros(1,size(y,1));% z la hinh chieu doc

z=zeros(1,limit-start+1);% z la hinh chieu doc

for i=start:chieucao for j=letrai:chieurong

if (y(i,j)>nguongtach) % vung nen else

z(i-start+1)=z(i-start+1)+1; % tinh cho bieu do xam

end end end

% tach khoi bang cach vao tung khoi van ban ngang tim hinh chieu ngang

i=start; start_t=i; limit_t=i;

while (i<=chieucao)

while (i<=chieucao)&(z(i-start+1)>(2*min(z))) %di het vung van ban de tinh chieu cao

i=i+1;

end

limit_t=i-1; %limit-start la chieu cao vung van ban ngang % tinh luoc do xam cho moi vung ngang

if (start_t<chieucao)&(limit_t>start_t) if limit_t>chieucao

end y=phantich(start_t,limit_t,y,nguongtach,chieu_cao_hang,letrai,lephai); end while (i<=chieucao)&(z(i-start+1)<=(2*min(z))) i=i+1; end start_t=i; end %%%%%%%%%%%%%%%%%%% ketqua=y;

Một phần của tài liệu đồ án tốt nghiệp chương trình với phương pháp phân tích fractal signature (Trang 64 - 68)

Tải bản đầy đủ (DOCX)

(116 trang)
w