【图像修复】基于约束最小二乘方滤波实现图像复原matlab源码GUI

一、简介

约束最小二乘方滤波(Constrained Least Squares Filtering,aka Tikhonov filtration,Tikhonov regularization)核心是H对噪声的敏感性问题。减少噪声敏感新问题的一种方法是以平滑度量的最佳复原为基础的,因此我们可以建立下列约束条件:\ 在这里插入图片描述

二、源代码

``` function varargout = zuixiaoercheng(varargin) % ZUIXIAOERCHENG M-file for zuixiaoercheng.fig % ZUIXIAOERCHENG, by itself, creates a new ZUIXIAOERCHENG or raises the existing % singleton. % % H = ZUIXIAOERCHENG returns the handle to a new ZUIXIAOERCHENG or the handle to % the existing singleton. % % ZUIXIAOERCHENG('CALLBACK',hObject,eventData,handles,...) calls the local % function named CALLBACK in ZUIXIAOERCHENG.M with the given input arguments. % % ZUIXIAOERCHENG('Property','Value',...) creates a new ZUIXIAOERCHENG or raises the % existing singleton*. Starting from the left, property value pairs are % applied to the GUI before zuixiaoerchengOpeningFunction gets called. An % unrecognized property name or invalid value makes property application % stop. All inputs are passed to zuixiaoerchengOpeningFcn 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 zuixiaoercheng

% Last Modified by GUIDE v2.5 20-May-2009 15:56:50

% Begin initialization code - DO NOT EDIT guiSingleton = 1; guiState = struct('guiName', mfilename, ... 'guiSingleton', guiSingleton, ... 'guiOpeningFcn', @zuixiaoerchengOpeningFcn, ... 'guiOutputFcn', @zuixiaoerchengOutputFcn, ... 'guiLayoutFcn', [] , ... 'guiCallback', []); if nargin & isstr(varargin{1}) guiState.gui_Callback = str2func(varargin{1}); end

if nargout [varargout{1:nargout}] = guimainfcn(guiState, varargin{:}); else guimainfcn(guiState, varargin{:}); end % End initialization code - DO NOT EDIT

% --- Executes just before zuixiaoercheng is made visible. function zuixiaoerchengOpeningFcn(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 zuixiaoercheng (see VARARGIN) img = imread('squarebox.bmp'); axes(handles.axes1); imshow(img); PSF = fspecial('motion',20,45); MF = imfilter(img,PSF,'circular'); noise = imnoise(zeros(size(img)),'gaussian',0,0.01); MF = double(MF); MFN = MF+noise; axes(handles.axes2); imshow(uint8(MFN)); fr = deconvreg(MFN,PSF,4,[1e-7,1e7]); axes(handles.axes3); imshow(uint8(fr)); set(handles.noisepoweredit,'string',4); % Choose default command line output for zuixiaoercheng handles.output = hObject;

% Update handles structure guidata(hObject, handles);

% UIWAIT makes zuixiaoercheng wait for user response (see UIRESUME) % uiwait(handles.zuixiaoercheng);

% --- Outputs from this function are returned to the command line. function varargout = zuixiaoercheng_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 during object creation, after setting all properties. function imagepopmenuCreateFcn(hObject, eventdata, handles) % hObject handle to imagepop_menu (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 set(hObject,'BackgroundColor','white'); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end

% --- Executes on selection change in imagepopmenu. function imagepopmenuCallback(hObject, eventdata, handles) % hObject handle to imagepopmenu (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) noisepower = str2num(get(handles.noisepoweredit,'string')); val = get(hObject,'value'); str = get(hObject,'string'); switch str{val} case 'Squarebox' squarebox = []; squarebox = imread('squarebox.bmp'); img = squarebox; case 'Lena' lena = []; lena = imread('lena.bmp'); img = lena; case 'Saturn' saturn = []; load imdemos saturn img = saturn; case 'Quarter' quarter = []; load imdemos quarter img = quarter; case 'Circuit' circuit = []; load imdemos circuit img = circuit; case 'Fingerprint' fingerprint = []; fingerprint = imread('fingerprint.jpg'); img = fingerprint; case 'Licenceplate' licenceplate = []; licenceplate = imread('licenceplate.jpg'); img = licenceplate;

case 'Cloudy'
    cloudy = [];
    cloudy = imread('cloudy.tif');
    img = cloudy;

end axes(handles.axes1); imshow(img); PSF = fspecial('motion',20,45); MF = imfilter(img,PSF,'circular'); noise = imnoise(zeros(size(img)),'gaussian',0,0.01); MF = double(MF); MFN = MF+noise; axes(handles.axes2); imshow(uint8(MFN)); fr = deconvreg(MFN,PSF,noisepower,[1e-7,1e7]); axes(handles.axes3); imshow(uint8(fr)); % Hints: contents = get(hObject,'String') returns imagepopmenu contents as cell array % contents{get(hObject,'Value')} returns selected item from imagepopmenu

% --- Executes during object creation, after setting all properties. function noisepowereditCreateFcn(hObject, eventdata, handles) % hObject handle to noisepower_edit (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 set(hObject,'BackgroundColor','white'); else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end ```

三、运行结果

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Matlab科研辅导帮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值