Tìm hiểu lập trình trong matlab tìm hiểu và hướng dẫn sử dụng image processing

51 0 0
Tìm hiểu lập trình trong matlab  tìm hiểu và hướng dẫn sử dụng image processing

Đ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

TRƯỜNG ĐẠI HỌC HỊA BÌNH KHOA CƠNG NGHỆ KHĨA LUẬN TỐT NGHIỆP Đề tài: “Tìm hiểu lập trình MatLab Tìm hiểu hướng dẫn sử dụng Image Processing” Sinh viên: Nguyễn Trường Giang Ngành: Công nghệ thông tin GVHD: T.S Nguyễn Đăng Minh Hà nội, tháng năm 2014 Lời cảm ơn Trên thực tế khơng có thành cơng mà không gắn liền với hỗ trợ, giúp đỡ dù hay nhiều, dù trực tiếp hay dán tiếp người khác Trong thời gian học tập mái trường Đại Học Hịa Bình em nhận giúp đỡ thầy cô, bố mẹ bạn bè Thời gian làm đồ án tốt nghiệp dịp tốt để chúng em tiếp xúc với thực tế Trong thời gian bảo vệ này, chúng em học hỏi tìm hiểu trạng yêu cầu thực tế Mục đích việc làm đồ án trải nghiệm thực tế giúp cho sinh viên hiểu rõ vai trò, trách nhiệm người cán kỹ thuật, nhằm xây dựng cho có nhận thức đắn hiểu rõ mối quan hệ lý thuyết thực tế vận dụng lý thuyết vào thực tế, qua củng cố hệ thống lại kiến thức học Qua đợt bảo vệ đồ án hướng dẫn, bảo tận tình thầy giáo anh chị công ty em trải nghiệm thực tế, bạn lớp, chúng em nắm vững nhiều kiến thức hoàn thành tốt đề tài đồ án tốt nghiệp Với lịng biết ơn sâu sắc em xin chân thành cảm ơn đến quý thầy cô khoa Công nghệ, trường Đại học Hịa Bình truyền đạt vốn kiến thức q báu cho em Và đặc biệt thầy Nguyễn Đăng Minh học kỳ cuối này, khoa tạo điều kiện cho em làm luận văn tốt nghiệp với đề tài “Tìm hiểu lập trình matlab.Tìm hiểu hướng dẫn sử dụng Image processing” Mục Lục Lời mở đầu Chương I Nhu cầu khôi phục ảnh số kỹ thuật kèm theo 1.1Giới thiêu khôi phục ảnh 1.1.1 Giới thiệu 1.1.2 Phục chế ảnh 1.2 Mơ hình suy thoái ảnh Chương II.Giới thiệu chung phần mềm Matlab 1.1 Khái niệm Matlab 1.2 Tổng quan cấu trúc liệu Matlab, ứng dụng 1.2.1 Dữ liệu 1.2.2 Ứng dụng 1.2.3 Toolbox công cụ quan trọng Matlab 1.3 Hệ thống Matlab 1.4 Làm quen với Matlab 1.5 Các cửa sổ làm việc Matlab 1.6 Giới thiệu khái quát ảnh số 1.6.1 Các khái niệm ảnh Các cách phân loại ảnh 10 Xử lý ảnh với Matlab 10 3.1 Xử lý ảnh 10 3.2 Các giai đoạn xử lý ảnh 11 Chương III Các hàm xử lý ảnh matlab 13 1.Các kiểu ảnh Matlab 13 1.1Ảnh định số (Indexed Images) 13 1.2 Ảnh cường độ (Intensity Images) 13 1.3 Ảnh nhị phân (Binary Images) 13 1.4 Ảnh RGB (RGB Images) 13 Các hàm xử lý ảnh Matlab 14 2.1 Đọc ghi liệu ảnh 14 2.2 Hiển thị ảnh 16 2.3 Các hàm chuyển đổi kiểu ảnh 17 2.4 Chuyển đổi định dạng file ảnh 18 2.5 Số học ảnh 18 Biến đổi không gian ảnh 19 3.1 Bảng thuật ngữ 19 3.2 Nội suy 20 3.3 Thay đổi kích thước ảnh 21 3.5 Xén ảnh (image cropping) 25 3.6 Các biến đổi ảnh thông dụng 27 Chương IV.Thử nghiệm với lập trình GUI 32 1.1 Giao diện chương trình 32 1.2 M-file chương trình 32 1.2 Một số hình ảnh test chương trình với hình ảnh bị nhiễu muối tiêu 39 1.3 hình ảnh test chương trình với hình ảnh bị nhiễu Gaussian 42 Kết Luận 45 Tài Liệu Tham Khảo 46 Mục Lục Hình Ảnh Hình 2.1: Cửa sổ làm việc matlab Hình 2.2 Cửa sổ Command History Hình 2.3 Cửa sổ Workspace Hình 2.4 Cửa sổ Variable Editor Hình 2.5 Các bước xử lý ảnh Hình 3.1 Ảnh trước sau imresize Hình 3.2 Ảnh trước sau imrotate Hình 3.6 Ảnh trước sau imtransforms Hình 3.7 Ảnh trước sau imtransforms với cường độ ảnh Hình 4.1 Giao diện chương trình Hình 4.2 Ảnh bị nhiễu muối tiêu( salt&papper) Hình 4.3 Ảnh lọc với lọc trung bình 3x3 Hình 4.4 Hình ảnh với lọc trung bình 5x5 Hình 4.5 Hình ảnh với lọc cao cấp 3x3 Hình 4.6 Hình ảnh với lọc cao cấp 5x5 Hình 4.7 Hình ảnh bị nhiễu Gaussian Hình 4.8 Hình ảnh với lọc điểm ma trận 3x3 Hình 4.9 Hình ảnh với lọc điểm ma trận 5x5 Hình 4.10 Hình ảnh với lọc tương thích với mắt 3x3 Hình 4.11 Hình ảnh với lọc tương thích với mắt 5x5 8 11 22 24 29 31 32 39 40 40 41 41 41 42 42 43 44 Tìm hiểu lập trình MatLab Tìm hiểu hướng dẫn sử dụng Image Processing Lời mở đầu Ngày khoa học công nghệ ngày phát triển, đặc biệt lĩnh vực công nghệ số,công nghệ điện tử Trong lĩnh vực điện tử yêu cầu tốc độ xử lý, kích thước linh kiện,sản phẩm ngày cao Tốc độ xử lý chip cải thiện nhanh chúng có khả xử lý tốt lĩnh vực cơng nghệ âm hình ảnh Một lĩnh vực ứng dụng nhiều cơng nghiệp,trong y tế,trong quốc phịng xử lý, phân tích hình ảnh video Hiện có nhiều cơng cụ hỗ trợ việc khơi phục hình ảnh để đem lại chất lượng ảnh tốt Photoshop,Magic Photo Recovery, Matlab,… Vì ứng dụng rộng rãi của lĩnh vực nên em định chọn đề tài " Tìm hiểu lập trình MatLab Tìm hiểu hướng dẫn sử dụng Image Processing".Lý em chọn đề tài mặc dùng cơng cụ đem lại chất lượng ảnh tốt Matlab sử dụng thay đổi code theo cách Và thầy mơn tận tình giúp đỡ tạo điều kiện thuận lợi phương tiên,dụng cụ mặt kiến thức cho chúng em suốt trình thực đề tài Em thực hoàn thành yêu cầu mà đề tài đồ án đặt tìm hiểu hoạt động Matlab cài đặt số thuật toán xử lý ảnh sử dụng Mặc dù em cố gắng nỗ lực để hồn thành đồ án tốt nghiệp này, song chắn tránh khỏi sai sót hạn chế Vì vậy, em mong nhận đóng góp ý kiến thầy cô giáo bạn để đề tài tốt nghiệp hoàn thiện Xin chân thành cảm ơn! Sinh Viên: Nguyễn Trường Giang Page Tìm hiểu lập trình MatLab Tìm hiểu hướng dẫn sử dụng Image Processing Chương I Nhu cầu khôi phục ảnh số kỹ thuật kèm theo 1.1Giới thiêu khôi phục ảnh 1.1.1 Giới thiệu Khôi phục ảnh trình loại bỏ hay tối thiểu hóa ảnh hưởng mơi trường bên ngồi hệ thống thu nhận ảnh gây Về ngun tắc, khơi phục ảnh nhằm xác định ,mơ hình tốn học q trình gây biến dạng, dùng ánh xạ ngược để xác định lại ảnh Bất kỳ ảnh thu thiết bị điện, quang điện hay quang học thường bị nhiễu mơi trường cảm biến thiết bị Các loại nhiễu hệ thống , bị mờ lệch tiêu điểm camera, nhiễu ngẫu nhiên chuyển động camera đối tượng chụp, nhiễu khí quyển… Khơi phục ảnh dùng lọc để lọc ảnh bị nhiễu nhằm giảm tối thiểu ảnh hưởng loại nhiễu ảnh kết gần giống ảnh gốc tốt Hiệu lọc khôi phục ảnh phụ thuộc vào nhận biết trình nhiễu với trình thu nhận hình ảnh Khôi phục ảnh thường xử lý miền tần số chủ yếu Bao gồm kỹ thuật lọc ngược,lọc bình phương tối thiểu.Mục đích xử lý ảnh làm thỏa mãn nhu cầu truyền thông tin ngày cao người, nhu cầu giải trí, nghiên cứu trao đổi sau biến đổi ảnh thành mảng liệu xử lý Để thu kết phân tích xử lý hay truyền dẫn Trong trình xử lý truyền dẫn mảng liệu tác động xấu từ môi trường xung quanh làm hư hại ảnh Vì vậy, để khơi phục lại ảnh có chất lượng tốt, thiết phải loại bỏ tín hiệu khơng mong muốn Do , mục tiêu chủ yếu việc khôi phục ảnh đông nghĩa với việc nâng cao chất lượng ảnh thu so với ảnh gốc Tuy nhiên , khôi phục nâng cao chất lượng ảnh có khác nhau, nâng cao chất lượng ảnh cố gắng cải thiện chất lượng ảnh theo mục tiêu chủ quan định sẵn; cịn khơi phục ảnh cố gắng loại bỏ hư hại nhiễu trình xử lý gây ra, dựa tiêu chuẩn khách quan Vậy ảnh bị hư hại đại lượng đại lượng bị ảnh hưởng nhiều ? Dễ nhận thấy giá trị mức xám vị trí pixel thành phần Giá trị mức xám bị biến đổi vị trí pixel bị biến dạng; có nghĩa ảnh bị mờ bị méo mó Do để khơi phục lại ảnh hoàn chỉnh cần cải thiện giá trị mức xám pixel, đồng thời khơi phục kích thước hình học ảnh, phép ghi ảnh Bời cho phép ta nhận điểm tương ứng hai ảnh vùng góc nhìn khac Sự khơi phục có vai trị quan trọng chup anh truyền ảnh từ xa ghi ảnh y-sinh học hay liên lac vũ trụ… 1.1.2 Phục chế ảnh Sinh Viên: Nguyễn Trường Giang Page Tìm hiểu lập trình MatLab Tìm hiểu hướng dẫn sử dụng Image Processing Phục chế lại ảnh bao gồm việc làm giảm loại bỏ thối hóa, suy thối, giảm sút chất lương việc thâu tóm tái tạo hình ảnh ảnh Một ví dụ giảm sút chất lượng hình ảnh “nhiễu” lối mắc phải độ phân giải hoạc hiệu ứng ống kinh : ảnh lọt khỏi tiêu cự quang học, nhòe chuyển động ống kính Chúng ta thấy vài cơng nghệ phục chế thành công việc khôi phục vùng ảnh phương thức khôi phục độ phân giải khu vực, số khác sử dụng giải pháp miền tần số Khôi phục ảnh nội dung trọng tâm công nghệ ảnh số, nhiên luận văn tập trung nhấn mạnh vào cách thức khôi phục ảnh suy giảm chất lượng ảnh 1.2 Mơ hình suy thối ảnh Trong khơng gian miền ta có ảnh f (x, y) khơng gian lọc h (x, y) thu lại hình ảnh bị nhiễu, ta giả dụ h (x, y) bao gồm dòng đơn nhất, kết thu nhịe theo phương hướng dịng ta viết g (x, y)= f (x, y) * h (x, y) Trong * khơng gian lọc, nhiên chưa phải tất cần cân nhắc thêm nhiễu mơ hình hóa chức cuộn lại ( thu nhận hình ảnh) Nếu η (x, y) đại diện cho biến cố ngẫu nhiên xảy ta biểu diễn ảnh bị hư hại theo biêu thức sau : g (x, y)=f (x, y) * h (x, y) +η(x, y) Chúng ta biêu diễn hoạt động tương tự miền tần số, noi nếp lại thay nhân có bổ sung thêm tính tuyến tính biến đổi fourier G(i,j)=F(i,j)H(i,j)+N(i,j) Biểu diễn tổng thể ảnh bị suy thoái F,H N biến đổi tương ứng f, h n Nếu biết giá trị H N khơi phục F phương trình F(i,j)=(G(i, j)-N(i, j))/H(i, j) Tuy nhiên biết phương pháp phi thực tiễn Mặc dù biết số thông tin thống kê nhiễu giá trị η(i, j) N(i,j) giá trị khác Mặt khác chia nhỏ H (i,j) trở ngại lớn xuất giá trị gần bằng, ngang Sinh Viên: Nguyễn Trường Giang Page Tìm hiểu lập trình MatLab Tìm hiểu hướng dẫn sử dụng Image Processing Chương II.Giới thiệu chung phần mềm Matlab 1.1 Khái niệm Matlab Matlab phần mềm ứng dụng chạy môi trường Windows hãng Mathwork sản xuất cung cấp, ngơn ngữ lập trình thực hành bậc cao sử dụng để giải toán kỹ thuật Matlab tích hợp việc tính tốn, thể kết quả, cho phép lập trình, giao diện làm việc dễ dàng cho người sử dụng Dữ liệu với thư viện lập trình sẵn cho phép người sử dụng có ứng dụng sau - Sử dụng hàm có sẵn thư viện, phép tính tốn học thơng thường - Cho phép lập trình tạo ứng dụng - Cho phép mơ mơ hình thực tế - Phân tích, khảo sát hiển thị liệu - Với phần mềm đồ hoạ cực mạnh - Cho phép phát triển, giao tiếp với số phần mềm khác C++, Fortran 1.2 Tổng quan cấu trúc liệu Matlab, ứng dụng Matlab hệ thống tương giao, phần tử liệu mảng (mảng khơng địi hỏi kích thước) Chúng cho phép giải vấn đề liên quanđến lập trình máy tính, đặc biệt sử dụng phép tính ma trận hay vectơ sử dụng ngơn ngữ C học Fortran lập trình thực ứng dụng lập trình câu lệnh gọi từ Matlab Matlab viết tắt từ chữ “MATrix LABoratory” tức thư viện ma trận, từ phần mềm Matlab viết nhằmcung cấp cho việc truy cập vào phần mềm ma trận cách dễ dàng, phần mềm ma trận phát triển cơng trình Linpack Eispack Ngày Matlab phát triển Lapack Artpack tạo nên nghệ thuật phần mềm cho ma trận 1.2.1 Dữ liệu Dữ liệu Matlab thể dạng ma trận (hoặc mảng - tổng quát), có kiểu liệu liệt kê sau đây: - Kiểu đơn single, kiểu có lợi nhớ liệu địi hỏi byte nhớ hơn, kiểu liệu không sử dụng phép tính tốn học, độ xác -Kiểu double kiểu kiểu thông dụng biến Matlab -Kiểu Sparse -Kiểu uint8, uint8, uint16, uint64 -Kiểu char ví dụ “Hello” -Kiểu cell -Kiểu Structure -Trong Matlab kiểu liệu double kiểu mặc định sử dụng phép tính số học 1.2.2 Ứng dụng Sinh Viên: Nguyễn Trường Giang Page Tìm hiểu lập trình MatLab Tìm hiểu hướng dẫn sử dụng Image Processing Matlab tạo điều kiện thuận lợi cho: -Các khoá học toán học -Các kỹ sư, nhà nghiên cứu khoa học -Dùng Matlab để tính tốn, nghiên cứu tạo sản phẩm tốt sản xuất 1.2.3 Toolbox công cụ quan trọng Matlab Công cụ Matlab cung cấp cho phép bạn ứng dụng kỹ thuật để phân tích, thiết kế, mơ mơ hình Ta tìm thấy toolbox mơ trường làm việc - Mạng nơron - Logic mờ - Simulink 1.3 Hệ thống Matlab Hệ thống giao diện Matlab chia thành phần: - Môi trường phát triển Đây nơi đặt công cụ, phương tiện giúp sử dụng lệnh file, ta liệt kê số sau + Desktop + Command Window + Command History + Browsers for viewinghelp • Thư viện, hàm tốn học bao gồm cấu trúc tính tổng, sin cosin atan, atan2 etc , phép tính đơn giản đến phép tính phức tạp tính ma trận nghich đảo, trị riêng, chuyển đổi fourier, laplace, symbolic library • Ngơn ngữ Matlab Đó ngơn ngữ cao ma trận mảng, với dòng lệnh, hàm, cấu trúc liệu vào, lập trình hướng đối tượng • Đồ hoạ Matlab Bao gồm câu lệnh thể đồ họa môi trường 2D 3D, tạo hình ảnh chuyển động, cung cấp giao diện tương tác người sử dụng máy tính • Giao tiếp với ngơn ngữ khác Matlab cho phép tương tác với ngôn ngữ khác C, Fortran … 1.4 Làm quen với Matlab Trước tiên để khởi động Matlab bạn kích click vào biểu tượng file Matlab.exe, hình xuất cửa sổ sau (Xem hình vẽ 1.1) Cửa sổ chứa công cụ (Giao diện người máy) cần thiết cho việc quản lý files, biến, cửa sổ lệnh, coi desktop panel gồm ô, vùng, quản lý tác dụng cửa sổ nhỏ quản lý desktop Sinh Viên: Nguyễn Trường Giang Page Tìm hiểu lập trình MatLab Tìm hiểu hướng dẫn sử dụng Image Processing Chương IV.Thử nghiệm với lập trình GUI 1.1 Giao diện chương trình Hình 4.1 Giao diện chương trình 1.2 M-file chương trình function varargout = finaldoan(varargin) % FINALDOAN MATLAB code for finaldoan.fig % FINALDOAN, by itself, creates a new FINALDOAN or raises the existing % singleton* % % H = FINALDOAN returns the handle to a new FINALDOAN or the handle to % the existing singleton* % % FINALDOAN('CALLBACK',hObject,eventData,handles, ) calls the local % function named CALLBACK in FINALDOAN.M with the given input arguments % % FINALDOAN('Property','Value', ) creates a new FINALDOAN or raises the % existing singleton* Starting from the left, property value pairs are % applied to the GUI before finaldoan_OpeningFcn gets called An % unrecognized property name or invalid value makes property application % stop All inputs are passed to finaldoan_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 Sinh Viên: Nguyễn Trường Giang Page 32 Tìm hiểu lập trình MatLab Tìm hiểu hướng dẫn sử dụng Image Processing % Edit the above text to modify the response to help finaldoan % Last Modified by GUIDE v2.5 12-May-2014 21:26:10 % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, 'gui_Singleton', gui_Singleton, 'gui_OpeningFcn', @finaldoan_OpeningFcn, 'gui_OutputFcn', @finaldoan_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 finaldoan is made visible function finaldoan_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 finaldoan (see VARARGIN) % Choose default command line output for finaldoan handles.output = hObject; % Update handles structure guidata(hObject, handles); % UIWAIT makes finaldoan wait for user response (see UIRESUME) % uiwait(handles.figure1); % - Outputs from this function are returned to the command line function varargout = finaldoan_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT); Sinh Viên: Nguyễn Trường Giang Page 33 Tìm hiểu lập trình MatLab Tìm hiểu hướng dẫn sử dụng Image Processing % 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 loadanh function loadanh_Callback(hObject, eventdata, handles) % hObject handle to loadanh (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global image1 orimage var1 var var=0; [filename,pathname,filterindex]=uigetfile({'*.jpg;*.bmp;*.tif;*.tiff;*.jpeg;*.png'},'Add image'); S=imread([pathname,filename]); S1=rgb2gray(S); handles.axes=S1; subplot(handles.axes1); imshow(S1),title('ANH GOC'); guidata(hObject,handles); % - Executes on button press in Salt function Salt_Callback(hObject, eventdata, handles) % hObject handle to Salt (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) f=handles.axes; g=imnoise(f, 'salt & pepper', 0.04); figure,imshow(g); guidata(hObject,handles); % - Executes on button press in Gaussian function Gaussian_Callback(hObject, eventdata, handles) % hObject handle to Gaussian (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) f=handles.axes; g=imnoise(f, 'gaussian', 0.01,0.03); figure,imshow(g); guidata(hObject,handles); Sinh Viên: Nguyễn Trường Giang Page 34 Tìm hiểu lập trình MatLab Tìm hiểu hướng dẫn sử dụng Image Processing % - Executes on button press in loctb55 function pushbutton5_Callback(hObject, eventdata, handles) % hObject handle to pushbutton5 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) f=handles.axes; g=imnoise(f, 'salt & pepper', 0.04); w = fspecial('average', [5,5]); f1 = imfilter(g, w); %figure,imshow(g) %guidata(hObject,handles); figure,imshow(f1) guidata(hObject,handles); % - Executes on button press in loctb33 function loctb33_Callback(hObject, eventdata, handles) % hObject handle to loctb33 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) f=handles.axes; g=imnoise(f, 'salt & pepper', 0.04); w = fspecial('average', [3,3]); f1 = imfilter(g, w); %figure,imshow(g),title('anh bi nhieu'); %guidata(hObject,handles); figure,imshow(f1),title('loc nhieu voi bo loc trung binh (diem giua)'); guidata(hObject,handles); % - Executes on button press in loctb9x9 function loctb9x9_Callback(hObject, eventdata, handles) % hObject handle to loctb9x9 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) f=handles.axes; g=imnoise(f, 'salt & pepper', 0.04); w = fspecial('average', [9,9]); f1 = imfilter(g, w); %figure,imshow(g),title('anh bi nhieu'); %guidata(hObject,handles); figure,imshow(f1),title('loc nhieu voi bo loc trung binh (diem giua)'); guidata(hObject,handles); Sinh Viên: Nguyễn Trường Giang Page 35 Tìm hiểu lập trình MatLab Tìm hiểu hướng dẫn sử dụng Image Processing % - Executes on button press in locdiemgiua55 function locdiemgiua55_Callback(hObject, eventdata, handles) % hObject handle to locdiemgiua55 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) f=handles.axes; g=imnoise(f, 'salt & pepper', 0.04); w = fspecial('average', [5,5]); f1 = imfilter(g, w); %figure %imshow(g),title('anh bi nhieu'); figure imshow(f1),title('loc voi bo loc diem voi ma tran 5x5'); guidata(hObject,handles); % - Executes on button press in loccaocap33 function loccaocap33_Callback(hObject, eventdata, handles) % hObject handle to loccaocap33 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) f=handles.axes; g=imnoise(f, 'salt & pepper', 0.04); f1=ordfilt2(g,5,ones(3,3)); figure,imshow(f1) % - Executes on button press in locdiemgiua33 function locdiemgiua33_Callback(hObject, eventdata, handles) % hObject handle to locdiemgiua33 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) f=handles.axes; g=imnoise(f, 'salt & pepper', 0.04); w = fspecial('average', [3,3]); f1 = imfilter(g, w); %figure %imshow(g),title('anh bi nhieu'); figure imshow(f1),title('loc voi bo loc diem voi ma tran 3x3'); guidata(hObject,handles); % - Executes on button press in locdiemgiua99 function locdiemgiua99_Callback(hObject, eventdata, handles) % hObject handle to locdiemgiua99 (see GCBO) Sinh Viên: Nguyễn Trường Giang Page 36 Tìm hiểu lập trình MatLab Tìm hiểu hướng dẫn sử dụng Image Processing % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) f=handles.axes; g=imnoise(f, 'salt & pepper', 0.04); w = fspecial('average', [9,9]); f1 = imfilter(g, w); %figure %imshow(g),title('anh bi nhieu'); figure imshow(f1),title('loc voi bo loc diem voi ma tran 9x9'); guidata(hObject,handles); % - Executes on button press in loctuongthich33 function loctuongthich33_Callback(hObject, eventdata, handles) % hObject handle to loctuongthich33 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) f=handles.axes; f1 = wiener2(f,[3,3]); figure imshow(f1),title('Anh loc tuong thich voi mat la 3x3'); guidata(hObject,handles); % - Executes on button press in loccaocap55 function loccaocap55_Callback(hObject, eventdata, handles) % hObject handle to loccaocap55 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) f=handles.axes; f1=ordfilt2(f,12,ones(5,5)); figure,imshow(f1) % - Executes on button press in loccaocap99 function loccaocap99_Callback(hObject, eventdata, handles) % hObject handle to loccaocap99 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) f=handles.axes; f1=ordfilt2(f,36,ones(9,9)); figure,imshow(f1) % - Executes on button press in loctuongthich55 Sinh Viên: Nguyễn Trường Giang Page 37 Tìm hiểu lập trình MatLab Tìm hiểu hướng dẫn sử dụng Image Processing function loctuongthich55_Callback(hObject, eventdata, handles) % hObject handle to loctuongthich55 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) f=handles.axes; f1 = wiener2(f,[5,5]); figure imshow(f1),title('Anh loc tuong thich voi mat la 5x5'); guidata(hObject,handles); % - Executes on button press in loctuongthich99 function loctuongthich99_Callback(hObject, eventdata, handles) % hObject handle to loctuongthich99 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) f=handles.axes; f1 = wiener2(f,[9,9]); figure imshow(f1),title('Anh loc tuong thich voi mat la 9x9'); guidata(hObject,handles); % - Executes on button press in medfilt function medfilt_Callback(hObject, eventdata, handles) % hObject handle to medfilt (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) f=handles.axes; f3=filter2(fspecial('average',3),f)/255; f2=medfilt2(f3, [3 3]); figure imshow(f2),title('Anh loc voi medfilt mat 3x3'); guidata(hObject,handles); % - Executes on button press in medfilt55 function medfilt55_Callback(hObject, eventdata, handles) % hObject handle to medfilt55 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) f=handles.axes; f3=filter2(fspecial('average',5),f)/255; f2=medfilt2(f3, [5 5]); figure imshow(f2),title('Anh loc voi medfilt mat 5x5'); Sinh Viên: Nguyễn Trường Giang Page 38 Tìm hiểu lập trình MatLab Tìm hiểu hướng dẫn sử dụng Image Processing guidata(hObject,handles) % - Executes on button press in medfilt99 function medfilt99_Callback(hObject, eventdata, handles) % hObject handle to medfilt99 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) f=handles.axes; f3=filter2(fspecial('average',9),f)/255; f2=medfilt2(f3, [9 9]); figure imshow(f2),title('Anh loc voi medfilt mat 3x3'); guidata(hObject,handles) % - 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 imshow('D:\New folder (2)\R2012\bin\1.jpg'); % Hint: place code in OpeningFcn to populate axes2 1.2 Một số hình ảnh test chương trình với hình ảnh bị nhiễu muối tiêu Hình 4.2 Ảnh bị nhiễu muối tiêu( salt&papper) Sinh Viên: Nguyễn Trường Giang Page 39 Tìm hiểu lập trình MatLab Tìm hiểu hướng dẫn sử dụng Image Processing Hình 4.3 Ảnh lọc với lọc trung bình 3x3 Hình 4.4 Hình ảnh với lọc trung bình 5x5 Sinh Viên: Nguyễn Trường Giang Page 40 Tìm hiểu lập trình MatLab Tìm hiểu hướng dẫn sử dụng Image Processing Hình 4.5 Hình ảnh với lọc cao cấp 3x3 Hình 4.6: hình ảnh với lọc cao cấp 5x5 Sinh Viên: Nguyễn Trường Giang Page 41 Tìm hiểu lập trình MatLab Tìm hiểu hướng dẫn sử dụng Image Processing 1.3 hình ảnh test chương trình với hình ảnh bị nhiễu Gaussian Hình4.7 Hình ảnh bị nhiễu Gaussian Hình 4.8 Hình ảnh với lọc điểm ma trận 3x3 Sinh Viên: Nguyễn Trường Giang Page 42 Tìm hiểu lập trình MatLab Tìm hiểu hướng dẫn sử dụng Image Processing Hình 4.9 hình ảnh với lọc điểm ma trận 5x5 Hình 4.10 hình ảnh với lọc tương thích với mắt 3x3 Sinh Viên: Nguyễn Trường Giang Page 43 Tìm hiểu lập trình MatLab Tìm hiểu hướng dẫn sử dụng Image Processing Hình 4.11 Hình ảnh với lọc tương thích với mắt 5x5 Sinh Viên: Nguyễn Trường Giang Page 44 Tìm hiểu lập trình MatLab Tìm hiểu hướng dẫn sử dụng Image Processing Kết Luận Sau thời gian dài tìm hiểu làm em tìm hiểu số thuật tốn kỹ thuật sử dụng thuật toán Matlab sử dụng giao diện GUI (graphical user interface) Và quy trình xử lý ảnh Ứng dụng công cụ matlab để xử lý số định dạng ảnh cụ thể ( jpg,bmp ) Tuy sử dụng Matlab giao diện người dùng chắn em cịn nhiều thiếu sót em mong thầy bạn đóng góp ý kiến để em hồn thiện khóa luận Trong tương lai em tiếp tục nghiên cứu kỹ thuật đảm bảo chất lượng phần mềm tốt nữa, đưa chất lượng hình ảnh cao để phục vụ tốt cho việc chỉnh sửa ảnh bị nhiễu mờ Sinh Viên: Nguyễn Trường Giang Page 45 Tìm hiểu lập trình MatLab Tìm hiểu hướng dẫn sử dụng Image Processing Tài Liệu Tham Khảo 1.Matlab _ Nguyễn Hoài Sơn.ĐHSPKT 2.Xử lý ảnh Video số_Nguyễn Kim Sách 3.http://www.mathworks.com/help/images/index.html#gui-tools 4.http://www.getreuer.info/tutorials/matlabimaging Sinh Viên: Nguyễn Trường Giang Page 46

Ngày đăng: 20/07/2023, 08:29

Tài liệu cùng người dùng

Tài liệu liên quan