失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 【图像修复】基于matlab GUI三维图像复原【含Matlab源码 963期】

【图像修复】基于matlab GUI三维图像复原【含Matlab源码 963期】

时间:2024-01-27 10:28:13

相关推荐

【图像修复】基于matlab GUI三维图像复原【含Matlab源码 963期】

一、获取代码方式

获取代码方式1:

完整代码已上传我的资源:【图像修复】基于matlab GUI三维图像复原【含Matlab源码 963期】

获取代码方式2:

通过订阅紫极神光博客付费专栏,凭支付凭证,私信博主,可获得此代码。

备注:

订阅紫极神光博客付费专栏,可免费获得1份代码(有效期为订阅日起,三天内有效);

二、三维图像复原简介

三维图像的复原的流程如下所示:

根据以上流程,三维图像的复原可以分为以下几个部分:三维图像的获得,制作三维PSF,反卷积实现复原。下面分别说明。

1 三维图像的获得

将一幅图片进行微小角度的旋转,再叠加,以获得三维的图片。利用语句B=imrotate(A,angle,method,bbox)函数可以实现,其中,B表示旋转后的图片,A表示需要旋转的图片;angle表示旋转的角度;method参数可以改变插值算法,如’nearest’最邻近线性插值,’bilinear’双线性插值等;bbox参数用于指定输出图像属性:‘crop’: 通过对旋转后的图像B进行裁剪, 保持旋转后输出图像B的尺寸和输入图像A的尺寸一样;{‘loose’}:使输出图像足够大,以保证源图像旋转后超出图像尺寸范围的像素值没有丢失。

2 制作三维PSF

在已知显微镜的放大倍数M、数值孔径NA、照射光波长λ和光学管腔di的情况下,利用以下公式:

可以制作出三维的OTF,再利用otf2psf函数,即可得PSF。

3 反卷积实现复原

反卷积,即对模糊的图像进行去模糊,从而实现图像的复原。作业中采用的是最大似然法来处理,即

其中,h表示点扩散函数,g表示需要复原的模糊图像,表示对原始图像的估计。

三、部分源代码

function varargout = text(varargin)% TEXT M-file for text.fig%TEXT, by itself, creates a new TEXT or raises the existing%singleton*.%%H = TEXT returns the handle to a new TEXT or the handle to%the existing singleton*.%%TEXT('CALLBACK',hObject,eventData,handles,...) calls the local%function named CALLBACK in TEXT.M with the given input arguments.%%TEXT('Property','Value',...) creates a new TEXT or raises the%existing singleton*. Starting from the left, property value pairs are%applied to the GUI before text_OpeningFcn gets called. An%unrecognized property name or invalid value makes property application%stop. All inputs are passed to text_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 text% Last Modified by GUIDE v2.5 09-May- 15:29:24% Begin initialization code - DO NOT EDITgui_Singleton = 1;gui_State = struct('gui_Name', mfilename, ...'gui_Singleton', gui_Singleton, ...'gui_OpeningFcn', @text_OpeningFcn, ...'gui_OutputFcn', @text_OutputFcn, ...'gui_LayoutFcn', [] , ...'gui_Callback', []);if nargin && ischar(varargin{1})gui_State.gui_Callback = str2func(varargin{1});endif nargout[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});elsegui_mainfcn(gui_State, varargin{:});end% End initialization code - DO NOT EDIT% --- Executes just before text is made visible.function text_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 text (see VARARGIN)% Choose default command line output for texthandles.output = hObject;% Update handles structureguidata(hObject, handles);% UIWAIT makes text wait for user response (see UIRESUME)% uiwait(handles.figure1);% --- Outputs from this function are returned to the command line.function varargout = text_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;% --- Executes on button press in pushbutton1.function pushbutton1_Callback(hObject, eventdata, handles)% hObject handle to pushbutton1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% --- Executes on button press in pushbutton2.function pushbutton2_Callback(hObject, eventdata, handles)% hObject handle to pushbutton2 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% --- Executes on button press in pushbutton3.function pushbutton3_Callback(hObject, eventdata, handles)% hObject handle to pushbutton3 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% --- Executes on button press in pushbutton4.function pushbutton4_Callback(hObject, eventdata, handles)% hObject handle to pushbutton4 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)function edit1_Callback(hObject, eventdata, handles)% hObject handle to edit1 (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,'String') returns contents of edit1 as text% str2double(get(hObject,'String')) returns contents of edit1 as a double% --- Executes during object creation, after setting all properties.function edit1_CreateFcn(hObject, eventdata, handles)% hObject handle to edit1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called% Hint: edit 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');endfunction edit2_Callback(hObject, eventdata, handles)% hObject handle to edit2 (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,'String') returns contents of edit2 as text% str2double(get(hObject,'String')) returns contents of edit2 as a double% --- Executes during object creation, after setting all properties.function edit2_CreateFcn(hObject, eventdata, handles)% hObject handle to edit2 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called% Hint: edit 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 on button press in pushbutton9.function pushbutton9_Callback(hObject, eventdata, handles)% hObject handle to pushbutton9 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% 按2D最大似然法公式,在空域中,通过卷积做图像复原:W = str2num(get(handles.edit5,'String'));global h;load f.mat f1; load g.mat g1;fi=g1;t1=clock; % 循环起始时间for i=1:W;a=imfilter (fi, h, 'conv', 'replicate' ); % 公式中分母的卷积。b=g1./a; % a,g大小应相同,才能作点除。c=imfilter (b, h, 'conv', 'replicate' ); % 公式中的相关。 fi=fi.*c;% 最大似然法公式。点乘时,f,c应大小相同。 endt2=clock; % 循环结束时间K = str2num(get(handles.edit3,'String'));axes(handles.axes5)imshow(fi(:,:,K),[]);%显示3D复原图中的一幅;N = str2num(get(handles.edit4,'String'));f=double(f1);for i=1:150for j=1:150for k=1:N mse_m(i,j,k)=(f(i,j,k)-fi(i,j,k))^2;endendendhh=sum(mse_m(:));mse=hh/(150*150*N)%hh=sum(mse_m(:));%aa=sum(a(:));% mse=b/(a);set(handles.edit6,'string',num2str(mse));function edit5_Callback(hObject, eventdata, handles)% hObject handle to edit5 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)input = get(handles.edit5,'String'); %get teh input from the edit text fieldinput = str2num(input); %change from string to numberif input<=0 hm=msgbox('请输入范围内的值', 'error')end% Hints: get(hObject,'String') returns contents of edit5 as text% str2double(get(hObject,'String')) returns contents of edit5 as a double% --- Executes during object creation, after setting all properties.function edit5_CreateFcn(hObject, eventdata, handles)% hObject handle to edit5 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called% Hint: edit 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

四、运行结果

五、matlab版本及参考文献

1 matlab版本

a

2 参考文献

[1] 蔡利梅.MATLAB图像处理——理论、算法与实例分析[M].清华大学出版社,.

[2]杨丹,赵海滨,龙哲.MATLAB图像处理实例详解[M].清华大学出版社,.

[3]周品.MATLAB图像处理与图形用户界面设计[M].清华大学出版社,.

[4]刘成龙.精通MATLAB图像处理[M].清华大学出版社,.

[5]陈浩,方勇,朱大洲,王成,陈子龙.基于蚁群算法的玉米植株热红外图像边缘检测[J].农机化研究. ,37(06)

如果觉得《【图像修复】基于matlab GUI三维图像复原【含Matlab源码 963期】》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。