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

【图像修复】基于matlab GUI维纳滤波图像复原【含Matlab源码 851期】

时间:2019-05-01 13:50:45

相关推荐

【图像修复】基于matlab GUI维纳滤波图像复原【含Matlab源码 851期】

一、获取代码方式

获取代码方式1:

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

获取代码方式2:

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

备注:

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

二、简介

维纳滤波的基本思路与传统的滤波器相似,不过在输入输出上有所不同,维纳滤波的输入为带噪语音信号,其输出为纯净语音信号的估计值。维纳滤波的数学表达如式所示。

2 DD算法:当前帧的先验信噪比的估计:

3 优化

三、部分源代码

function varargout = wiener_filter(varargin)% WIENER_FILTER M-file for wiener_filter.fig%WIENER_FILTER, by itself, creates a new WIENER_FILTER or raises the existing%singleton*.%%H = WIENER_FILTER returns the handle to a new WIENER_FILTER or the handle to%the existing singleton*.%%WIENER_FILTER('CALLBACK',hObject,eventData,handles,...) calls the local%function named CALLBACK in WIENER_FILTER.M with the given input arguments.%%WIENER_FILTER('Property','Value',...) creates a new WIENER_FILTER or raises the%existing singleton*. Starting from the left, property value pairs are%applied to the GUI before wiener_filter_OpeningFunction gets called. An%unrecognized property name or invalid value makes property application%stop. All inputs are passed to wiener_filter_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 wiener_filter% Last Modified by GUIDE v2.5 20-May- 10:04:40% Begin initialization code - DO NOT EDITgui_Singleton = 1;gui_State = struct('gui_Name', mfilename, ...'gui_Singleton', gui_Singleton, ...'gui_OpeningFcn', @wiener_filter_OpeningFcn, ...'gui_OutputFcn', @wiener_filter_OutputFcn, ...'gui_LayoutFcn', [] , ...'gui_Callback', []);if nargin & isstr(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 wiener_filter is made visible.function wiener_filter_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 wiener_filter (see VARARGIN)axes(handles.axes1);img = checkerboard(8);imshow(img,[]);PSF = fspecial('motion',10,45);MF = imfilter(img,PSF,'circular');axes(handles.axes2);imshow(MF,[]);noise = imnoise(zeros(size(img)),'gaussian',0,0.01);MFN = MF+noise;axes(handles.axes3);imshow(MFN,[]);Sn = abs(fft2(MFN)).^2;Sf = abs(fft2(img)).^2;NCORR = fftshift(real(ifft2(Sn)));ICORR = fftshift(real(ifft2(Sf)));J = deconvwnr(MFN,PSF,NCORR,ICORR);axes(handles.axes4);imshow(J,[]);set(handles.len_edit,'string',10);set(handles.theta_edit,'string',45);set(handles.variance_edit,'string',0.01);% Choose default command line output for wiener_filterhandles.output = hObject;% Update handles structureguidata(hObject, handles);% UIWAIT makes wiener_filter wait for user response (see UIRESUME)% uiwait(handles.figure1);% --- Outputs from this function are returned to the command line.function varargout = wiener_filter_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 during object creation, after setting all properties.function image_pop_menu_CreateFcn(hObject, eventdata, handles)% hObject handle to image_pop_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 ispcset(hObject,'BackgroundColor','white');elseset(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));end% --- Executes on selection change in image_pop_menu.%function image_pop_menu_Callback(hObject, eventdata, handles)% hObject handle to image_pop_menu (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)%LEN = str2num(get(handles.len_edit,'string'));%THETA = str2num(get(handles.theta_edit,'string'));variance = str2num(get(handles.variance_edit,'string'));val = get(hObject,'value');str = get(hObject,'string');switch str{val}case 'Lena'lena = [];lena = imread('lena.bmp');img = lena;case 'Saturn'saturn = [];load imdemos saturnimg = saturn;case 'Quarter'quarter = [];load imdemos quarterimg = quarter;case 'Flower'flower = [];load imdemos flowerimg = flower;case 'Circuit'circuit = [];load imdemos circuitimg = circuit;endaxes(handles.axes1);imshow(img);PSF = fspecial('motion',LEN,THETA);MF = imfilter(img,PSF,'circular','conv');axes(handles.axes2);imshow(MF);noise = imnoise(zeros(size(img)),'gaussian',0,variance);MF1 = double(MF);MFN = MF1+noise;axes(handles.axes3);imshow(uint8(MFN),[]);Sn = abs(fft2(MFN)).^2;Sf = abs(fft2(img)).^2;NCORR = fftshift(real(ifft2(Sn)));ICORR = fftshift(real(ifft2(Sf)));J = deconvwnr(MFN,PSF,NCORR,ICORR);axes(handles.axes4);imshow(J,[]);% Hints: contents = get(hObject,'String') returns image_pop_menu contents as cell array% contents{get(hObject,'Value')} returns selected item from image_pop_menu% --- Executes during object creation, after setting all properties.function len_edit_CreateFcn(hObject, eventdata, handles)% hObject handle to len_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 ispcset(hObject,'BackgroundColor','white');elseset(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));endfunction len_edit_Callback(hObject, eventdata, handles)% hObject handle to len_edit (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)

四、运行结果

五、matlab版本及参考文献

1 matlab版本

a

2 参考文献

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

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

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

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

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

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

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