1. Trang chủ
  2. » Luận Văn - Báo Cáo

BÁO CÁO BÀI TẬP MÔN XỬ LÝ ẢNH

11 4K 12

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 11
Dung lượng 757,52 KB

Nội dung

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ó. Xử lý ảnh có nhiều ứng dụng trong thực tiễn như: hệ thông tin địa lý, quân sự, y học.

Trang 1

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

KHOA CÔNG NGHỆ THÔNG TIN

o0o

-BÁO CÁO BÀI TẬP MÔN XỬ LÝ ẢNH

Vinh

Nhóm 4 : Nguyễn Văn Lợi

Ngô Văn Cường Hoàng Minh Trang Nguyễn Quốc Vinh

Đà Nẵng, 11/2012

Trang 2

Đề tài 04: Tìm hiểu các phương pháp thay đổi độ tương phản, tạo ảnh âm bản và phân

ngưỡng ảnh Thử nghiệm với ảnh 24 bit.

1 Phát biểu bài toá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ó Xử lý ảnh có nhiều ứng dụng trong thực tiễn như: hệ thông tin địa

lý, quân sự, y học.

Cụ thể, xử lý ảnh số có rất nhiều ứng dụng như:

 Làm nổi các ảnh trong y học.

 Khôi phục lại ảnh do tác động của khí quyển trong thiên văn học.

 Chuyển tải, nén ảnh khi truyền đi xa hoặc lưu trữ.

Trong lĩnh vực y tế, xử lý ảnh đang được ứng dụng một cách rộng rãi và đem lại nhiều kết quả khả quan Khoa học hỗ trợ cho kỹ thuật chuẩn đoán hình ảnh chính là

xử lý ảnh Chẳng hạn như trong các phương pháp: chụp X-quang, chụp cắt lớp CT, MRI, siêu âm, … Ảnh sau khi được tái tạo chưa thể rõ nét được, cần phải xử lý lọc nhiễu, tăng cường và khôi phục ảnh Xử lý ảnh còn được ứng dụng trong nhận dạng tế bào ung thư, trong xác định tỉ lệ tế bào viêm trên tế bào bình thường

Trong phạm vi thời gian cho phép, chúng ta sẽ tìm hiểu và ứng dụng các vấn đề cơ bản như: thay đổi độ tương phản, tạo ảnh âm bản, phân ngưỡng ảnh.

2 Hướng giải quyết

Để có hướng giải quyết tốt nhất đối với bài toán, trước tiên cần nắm các khái niệm

về độ tương phản, ảnh âm bản, phân ngưỡng ảnh.

a) Độ tương phản

Ảnh số là tập hợp các điểm, mỗi điểm có giá trị độ sáng khác nhau Ở đây, độ sáng để mắt người dễ cảm nhận ảnh song không phải là quyết định Thực tế chỉ ra rằng hai đối tượng có cùng độ sáng nhưng đặt trên hai nền khác nhau sẽ cho cảm nhận sáng khác nhau Như vậy, độ tương phản biểu diễn sự thay đổi độ sáng của đối tượng

Trang 3

so với nền Nói một cách khác, độ tương phản là độ nổi của điểm ảnh hay vùng ảnh so với nền Như vậy, nếu ảnh có độ tương phản kém, ta có thể thay đổi tùy theo ý muốn Ảnh với độ tương phản thấp có thể do điều kiện sáng không đủ hay không đều, hoặc do tính không tuyến tính hay biến động nhỏ của bộ cảm nhận ảnh Để điều chỉnh lại độ tương phản của ảnh, cần điều chỉnh lại biên độ trên toàn dải hay trên dải có giới hạn bằng cách biến đổi tuyến tính biên độ đầu vào hay phi tuyến.

b) Ảnh âm bản

Âm bản nhận được bằng phép biến đổi âm Phép biến đổi rất có nhiều hữu ích trong phim ảnh dùng trong các ảnh y học.

c) Phân ngưỡng ảnh

Kỹ thuật này đặt ngưỡng để hiển thị các tông màu liên tục Các điểm trong ảnh được so sánh với ngưỡng định trước Giá trị của ngưỡng sẽ quyết định điểm có được hiển thị hay không Do vậy ảnh kết quả sẽ mất đi một số chi tiết Có nhiều kỹ thuật chọn ngưỡng áp dụng cho các đối tượng khác nhau.

Phân ngưỡng là trường hợp đặc biệt của tách nhiễu Trong trường hợp này, ảnh đầu vào là ảnh nhị phân (có hai mức) Phân ngưỡng thường dùng trong kỹ thuật in ảnh hai màu vì ảnh gần nhị phân không cho ảnh nhị phân khi quét ảnh do có nhiễu từ bộ cảm biến và biến đổi của nền ví dụ trường hợp lọc nhiễu của ảnh vân tay.

d) Hướng giải quyết

Mục tiêu của chúng ta là xây dựng chương trình ứng dụng theo yêu cầu nhằm hiểu

và nắm vững các khái niệm, thao tác, kỹ thuật về độ tương phản, ảnh âm bản và phân ngưỡng ảnh Vì vậy, đầu tiên thực hiện xây dựng thuật toán, cài đặt phần mềm Matlab

và điều cơ bản nhất là phải xây dựng được chương trình minh họa ở mức đơn giản, sau đó có thể phát triển lên (giao diện đẹp và thân thiện, bổ sung thêm các ứng dụng khác…)

Sử dụng phần mềm Matlab để xây dựng chương trình hoàn chỉnh Sau khi thiết kế

và hoàn thành giao diện ứng dụng, thực hiện lập trình thao tác cho các đồ thị, nút… với yêu cầu đọc được file ảnh, xử lý, đưa ra màn hình, đồng thời xử lý và đưa ra file ảnh kết quả.

Trang 4

3 Thuật toán

4 Kỹ thuật cài đặt

Sử dụng phần mềm Matlab.

4.1 Giao diện

Thiết kế giao diện: hai trục tọa độ (asex1 hiển thị ảnh ban đầu, asex2 hiển thị ảnh sau khi xử lý), bảng điều khiển bao gồm các nút chọn ảnh, âm bản, phân ngưỡng, thay đổi độ tương phản và menu lưu ảnh (lưu ảnh với ba cách tùy theo nhu cầu) Bên cạnh

đó, nhóm chúng em bổ sung thêm các ứng dụng phụ như các nút thoát, thiết lập lại, nút giới thiệu thông tin nhóm, và ứng dụng lựa chọn ngôn ngữ để thuận tiện cho người

sử dụng.

Trang 5

4.2 Lập trình

function varargout = BT2(varargin)

% BT2 M-file for BT2.fig

% BT2, by itself, creates a new BT2 or raises the existing

% singleton*

%

% H = BT2 returns the handle to a new BT2 or the handle to

% the existing singleton*

%

% BT2('CALLBACK',hObject,eventData,handles, ) calls the local

% function named CALLBACK in BT2.M with the given input arguments

%

% BT2('Property','Value', ) creates a new BT2 or raises the

% existing singleton* Starting from the left, property value pairs are

% applied to the GUI before BT2_OpeningFcn gets called An

% unrecognized property name or invalid value makes property

application

% stop All inputs are passed to BT2_OpeningFcn via varargin

%

% *See GUI Options on GUIDE's Tools menu Choose "GUI allows only one

% instance to run (singleton)"

%

% See also: GUIDE, GUIDATA, GUIHANDLES

% Edit the above text to modify the response to help BT2

% Last Modified by GUIDE v2.5 13-Dec-2012 21:33:16

% Begin initialization code - DO NOT EDIT

gui_Singleton = 1;

gui_State = struct('gui_Name', mfilename,

'gui_Singleton', gui_Singleton,

'gui_OpeningFcn', @BT2_OpeningFcn,

'gui_OutputFcn', @BT2_OutputFcn,

'gui_LayoutFcn', [] ,

'gui_Callback', []);

if nargin && ischar(varargin{1})

gui_State.gui_Callback = str2func(varargin{1});

end

if nargout

[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});

else

gui_mainfcn(gui_State, varargin{:});

end

% End initialization code - DO NOT EDIT

% - Executes just before BT2 is made visible

function BT2_OpeningFcn(hObject, eventdata, handles, varargin)

% This function has no output args, see OutputFcn

% hObject handle to figure

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% varargin command line arguments to BT2 (see VARARGIN)

Trang 6

% Choose default command line output for BT2

handles.output = hObject;

% Update handles structure

guidata(hObject, handles);

% UIWAIT makes BT2 wait for user response (see UIRESUME)

% uiwait(handles.figure1);

% - Outputs from this function are returned to the command line

function varargout = BT2_OutputFcn(hObject, eventdata, handles)

% varargout cell array for returning output args (see VARARGOUT);

% hObject handle to figure

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure

varargout{1} = handles.output;

% - Executes on button press in thoat

function thoat_Callback(hObject, eventdata, handles)

% hObject handle to thoat (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

clear all; % xoa bo nho

close(BT2); %Thoat chuong trinh

msgbox(' Thank You !!!!!!! Best Wish For You !!!!See You Again

(^-^) ')

% - Executes on button press in reset function reset_Callback(hObject, eventdata, handles) % hObject handle to reset (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) axes(handles.axes2); cla reset; axes(handles.axes1); cla reset; clear all; % - Executes on button press in gioithieu function gioithieu_Callback(hObject, eventdata, handles) % hObject handle to gioithieu (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) msgbox('Hoc vien Cong Nghe Buu Chinh Vien Thong

Khoa CNTT

GVHD: Ths Trinh The Vinh

Lop: L11CQCN012-B

Nhom 4

Ngo Van Cuong

Nguyen Van Loi

Trang 7

Hoang Minh Trang Nguyen Quoc Vinh')

% - Executes on button press in ngonngu

function ngonngu_Callback(hObject, eventdata, handles)

% hObject handle to ngonngu (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% Hint: get(hObject,'Value') returns toggle state of ngonngu

a = get(hObject,'Value');

if a == 1

set(handles.ngonngu, 'String', 'Lua chon ngon ngu');

set(handles.amban, 'String', 'Am ban');

set(handles.nguong, 'String', 'Phan nguong');

set(handles.gioithieu, 'String', 'Gioi thieu');

set(handles.thoat, 'String', 'Thoat');

set(handles.dkhien, 'String', 'Bang Dieu Khien');

set(handles.tuongphan, 'String', 'Do Tuong Phan:');

set(handles.chon, 'String', 'Chon Anh');

set(handles.reset, 'String', 'ThietLapLai');

set(handles.luu, 'String', 'Luu Anh:');

else

set(handles.ngonngu, 'String', 'Choose language');

set(handles.amban, 'String', 'Negative');

set(handles.nguong, 'String', 'Threshold');

set(handles.gioithieu, 'String', 'About');

set(handles.thoat, 'String', 'Exit');

set(handles.dkhien, 'String', 'Control Panel');

set(handles.tuongphan, 'String', 'Contrast:');

set(handles.chon, 'String', 'Choose Image');

set(handles.reset, 'String', 'Reset');

set(handles.luu, 'String', 'Save:');

end

% - Executes on button press in amban

function amban_Callback(hObject, eventdata, handles)

% hObject handle to amban (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

global anh;

global anh2;

anh2=imadjust(anh,[0 1],[1 0]);

axes(handles.axes2);

imshow(anh2);

% - Executes on button press in nguong

function nguong_Callback(hObject, eventdata, handles)

% hObject handle to nguong (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

global anh;

global anh3;

anh3 = im2bw(anh);

axes(handles.axes2);

imshow(anh3);

Trang 8

% - Executes on slider movement.

function slider4_Callback(hObject, eventdata, handles)

% hObject handle to slider4 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'Value') returns position of slider

% get(hObject,'Min') and get(hObject,'Max') to determine range of slider

global anh;

global anh4;

a= anh;

b= [get(hObject,'Value'), 1];

anh4=imadjust(a, stretchlim(a, b));

axes(handles.axes2);

imshow(anh4);

% - Executes during object creation, after setting all properties

function slider4_CreateFcn(hObject, eventdata, handles)

% hObject handle to slider4 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles empty - handles not created until after all CreateFcns called

% Hint: slider controls usually have a light gray background

if isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor',[.9 9 9]);

end

% - Executes on button press in chon

function chon_Callback(hObject, eventdata, handles)

% hObject handle to chon (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

[filename,pathname]=uigetfile({'*.*'},'Thu Vien Anh')

global anh;

var=strcat(pathname,filename);

if (filename == 0)

msgbox(' Vui long chon anh ');

else

anh=imread(var);

axes(handles.axes1);

imshow(anh);

end

% - Executes during object creation, after setting all properties

function axes2_CreateFcn(hObject, eventdata, handles)

% hObject handle to axes2 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles empty - handles not created until after all CreateFcns called

% Hint: place code in OpeningFcn to populate axes2

% - Executes during object creation, after setting all properties

Trang 9

function axes1_CreateFcn(hObject, eventdata, handles)

% hObject handle to axes1 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles empty - handles not created until after all CreateFcns called

% Hint: place code in OpeningFcn to populate axes1

% - Executes during object creation, after setting all properties

function bang_CreateFcn(hObject, eventdata, handles)

% hObject handle to bang (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles empty - handles not created until after all CreateFcns called

% - Executes on selection change in popupmenu1

function popupmenu1_Callback(hObject, eventdata, handles)

% hObject handle to popupmenu1 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% Hints: contents = get(hObject,'String') returns popupmenu1 contents as cell array

% contents{get(hObject,'Value')} returns selected item from

% popupmenu1

contents = get(hObject,'Value');

switch contents

case 1

global anh2;

imwrite(anh2,'AmBan.jpeg','jpeg');

case 2

global anh3;

imwrite(anh3,'PhanNguong.jpeg','jpeg');

case 3

global anh4;

imwrite(anh4,'TuongPhan.jpeg','jpeg');

end

% - Executes during object creation, after setting all properties

function popupmenu1_CreateFcn(hObject, eventdata, handles)

% hObject handle to popupmenu1 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles empty - handles not created until after all CreateFcns called

% Hint: popupmenu controls usually have a white background on Windows

% See ISPC and COMPUTER

if ispc && isequal(get(hObject,'BackgroundColor'),

get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

% - Executes during object creation, after setting all properties

function luu_CreateFcn(hObject, eventdata, handles)

% hObject handle to luu (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles empty - handles not created until after all CreateFcns called

Trang 10

4.3 Kết quả

5 Các vấn đề khác

Trong phạm vi thời gian không cho phép, nhóm chúng em dừng lại ở các nội dung ảnh âm bản, phân ngưỡng ảnh và thay đổi độ tương phản Nếu tiếp tục thực hiện sẽ

Trang 11

thêm các ứng dụng khác như tách màu, nâng cao chất lượng ảnh, phát hiện biên… để chương trình hoàn thiện hơn

Bên cạnh đó, ngoài yêu cầu của bài toán, chúng ta cũng có thể phát triển thêm các ứng dụng như: thao tác trực tiếp (khoanh vùng chẳng hạn…) bằng chuột trên ảnh âm bản sau khi đã được chuyển từ ảnh ban đầu… nhằm phục vụ tốt hơn cho người dùng

Ngày đăng: 13/07/2014, 20:13

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w