Tải bản đầy đủ (.docx) (11 trang)

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

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 (595.58 KB, 11 trang )

Xử Lý Ảnh
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
GVHD : Ths Trịnh Thế Vinh
Lớp : L11CQCN012-B
Nhóm 4 : Nguyễn Văn Lợi
Ngô Văn Cường
Hoàng Minh Trang
Nguyễn Quốc Vinh
L11CQCN012-B Nhóm 5 Trang 1
Xử Lý Ảnh
Đà Nẵng, 11/2012
L11CQCN012-B Nhóm 5 Trang 2
Xử Lý Ảnh
Đề 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
L11CQCN012-B Nhóm 5 Trang 3
Xử Lý Ảnh
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ả.
L11CQCN012-B Nhóm 5 Trang 4
Xử Lý Ảnh
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.
L11CQCN012-B Nhóm 5 Trang 5
Xử Lý Ảnh
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)
L11CQCN012-B Nhóm 5 Trang 6
Xử Lý Ảnh
% 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
L11CQCN012-B Nhóm 5 Trang 7
Xử Lý Ảnh
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);
L11CQCN012-B Nhóm 5 Trang 8
Xử Lý Ảnh
% 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.
L11CQCN012-B Nhóm 5 Trang 9
Xử Lý Ảnh
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
L11CQCN012-B Nhóm 5 Trang 10
Xử Lý Ảnh
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ẽ 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.
L11CQCN012-B Nhóm 5 Trang 11

×