基于MATLAB的数字图像处理(完美运行)
资源内容介绍
数字图像处理是指利用计算机科学和数字信号处理的技术来改进和增强图像的质量、改变图像的外观、提取图像的特征以及实现图像分析和理解的过程。数字图像处理可以包括图像增强、图像复原、图像压缩、图像分割、图像识别等多个方面。在数字图像处理中,常用的技术包括滤波、边缘检测、图像配准、图像重建、图像融合等。滤波可以通过去噪、增强细节等方式改善图像的质量。边缘检测可以找出图像中物体的边界。图像配准可以将多幅图像对齐,用于图像拼接或者图像叠加。图像重建可以根据有损压缩后的图像进行恢复,以提高图像质量。图像融合可以将多个图像的信息融合成一个图像,用于提高图像的观看效果。数字图像处理在许多领域中都有广泛的应用,包括医学图像处理、遥感图像处理、安全监控、计算机视觉等。医学图像处理可以用于诊断和治疗,例如通过图像分割和特征提取来辅助疾病检测。遥感图像处理可以用于地理信息系统和环境监测,例如通过图像分类和变化检测来分析土地利用和覆盖变化。安全监控可以通过图像识别和分析来实现人脸识别和行为分析。计算机视觉可以用于机器人导航、自动驾驶等领域。总的来说,数字图像处理是一门利用计算机和数字信号处理技术来处理和 function varargout = GUI(varargin)% GUI MATLAB code for GUI.fig% GUI, by itself, creates a new GUI or raises the existing% singleton*.%% H = GUI returns the handle to a new GUI or the handle to% the existing singleton*.%% GUI('CALLBACK',hObject,eventData,handles,...) calls the local% function named CALLBACK in GUI.M with the given input arguments.%% GUI('Property','Value',...) creates a new GUI or raises the% existing singleton*. Starting from the left, property value pairs are% applied to the GUI before GUI_OpeningFcn gets called. An% unrecognized property name or invalid value makes property application% stop. All inputs are passed to GUI_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 GUI% Last Modified by GUIDE v2.5 16-Jun-2024 21:21:11% Begin initialization code - DO NOT EDITgui_Singleton = 1;gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @GUI_OpeningFcn, ... 'gui_OutputFcn', @GUI_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []);if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1});endmainfc;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 GUI is made visible.function GUI_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 GUI (see VARARGIN)% Choose default command line output for GUIhandles.output = hObject;% Update handles structureguidata(hObject, handles);% UIWAIT makes GUI wait for user response (see UIRESUME)% uiwait(handles.figure1);% --- Outputs from this function are returned to the command line.function varargout = GUI_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 structurevarargout{1} = handles.output;% --------------------------------------------------------------------function Untitled_9_Callback(hObject, eventdata, handles)% hObject handle to Untitled_9 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% --------------------------------------------------------------------function Untitled_4_Callback(hObject, eventdata, handles)% hObject handle to Untitled_4 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% --------------------------------------------------------------------function Untitled_5_Callback(hObject, eventdata, handles)% hObject handle to Untitled_5 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% --------------------------------------------------------------------function Untitled_7_Callback(hObject, eventdata, handles)% hObject handle to Untitled_7 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% --------------------------------------------------------------------function Untitled_1_Callback(hObject, eventdata, handles) [filename, pathname] = uigetfile({'*.bmp';'*.jpg';'*.jpeg'},'选择图像'); if isequal(filename,0) | isequal(pathname,0) disp('取消'); else disp(['选择 ', fullfile(pathname, filename)]) endx=imread(filename);[width,height,Cnums]=size(x);a=log2(width);b=log2(height);axes(handles.axes1);imshow(x); handles.imdata=x;handles.reload=handles.imdata;guidata(hObject, handles);% hObject handle to Untitled_1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% --------------------------------------------------------------------function Untitled_3_Callback(hObject, eventdata, handles)x=handles.reload;[row,col,Cnums]=size(x);axes(handles.axes2);imshow(zeros([256,256]));axes(handles.axes1);imshow(x);title('图像重载');handles.imdata=handles.reload;guidata(hObject, handles);% hObject handle to Untitled_3 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% --------------------------------------------------------------------function Untitled_2_Callback(hObject, eventdata, handles)[filename, pathname] = uiputfile({'*.bmp';'*.jpg';'*.jpeg'}, 'Pick an image-file'); if isequal(filename,0) | isequal(pathname,0) disp('User pressed cancel') else disp(['User selected ', fullfile(pathname, filename)]) endimwrite(handles.imdata,filename);guidata(hObject, handles);% hObject handle to Untitled_2 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% --------------------------------------------------------------------function Untitled_8_Callback(hObject, eventdata, handles)f=handles.imdata;f2=double(f);[row,col]=size(f);g=fft2(f2);g=fftshift(g);nn=256;d0=40;nx=fix(row/2);ny=fix(col/2);for i=1:row for j=1:col d=sqrt((i-nx)^2+(j-ny)^2); h=1/(1+0.414*(d0/d)^(2*nn)); result(i,j)=h*g(i,j); endendresult=ifftshift(result);f3=ifft2(result);f4=f2-abs(f3);axes(handles.axes2),imshow(f4,[0,255]);handles.imdata=f4;guidata(hObject, handles);% hObject handle to Untitled_8 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% --------------------------------------------------------------------function Untitled_6_Callback(hObject, eventdata, handles)f=handles.imdata;f2=double(f);[M,N]=size(f);f3=zeros([M,N]);for x=2:(M-1); for y=2:(N-1); f3(x,y)=(f2(x-1,y-1)+f2(x,y-1)+f2(x+1,y-1)+f2(x-1,y)+f2(x,y)+f2(x+1,y)+f2(x-1,y+1)+f2(x,y+1)+f2(x+1,y+1))/9; endendaxes(handles.axes2),imshow(f3,[min(min(f3)),max(max(f3))]);handles.imdata=f3;guidata(hObject, handles);% hObject handle to Untitled_6 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)