最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網 會員登陸 & 注冊

【圖像壓縮】基于小波變換實現(xiàn)圖像壓縮matlab源碼含 GUI

2021-09-20 17:14 作者:Matlab工程師  | 我要投稿

一、簡介

1974年,法國工程師J.Morlet首先提出小波變換的概念,1986年著名數(shù)學家Y.Meyer偶然構造出一個真正的小波基,并與S.Mallat合作建立了構造小波基的多尺度分析之后,小波分析才開始蓬勃發(fā)展起來。小波分析的應用領域十分廣泛,在數(shù)學方面,它已用于數(shù)值分析、構造快速數(shù)值方法、曲線曲面構造、微分方程求解、控制論等。在信號分析方面的濾波、去噪聲、壓縮、傳遞等。在圖像處理方面的圖像壓縮、分類、識別與診斷,去噪聲等。本章將著重闡述小波在圖像中的應用分析。
1 小波變換原理
小波分析是一個比較難的分支,用戶采用小波變換,可以實現(xiàn)圖像壓縮,振動信號的分解與重構等,因此在實際工程上應用較廣泛。小波分析與Fourier變換相比,小波變換是空間域和頻率域的局部變換,因而能有效地從信號中提取信息。小波變換通過伸縮和平移等基本運算,實現(xiàn)對信號的多尺度分解與重構,從而很大程度上解決了Fourier變換帶來的很多難題。
小波分析作一個新的數(shù)學分支,它是泛函分析、Fourier分析、數(shù)值分析的完美結晶;小波分析也是一種“時間—尺度”分析和多分辨分析的新技術,它在信號分析、語音合成、圖像壓縮與識別、大氣與海洋波分析等方面的研究,都有廣泛的應用。
(1)小波分析用于信號與圖像壓縮。小波壓縮的特點是壓縮比高,壓縮速度快,壓縮后能保持信號與圖像的特征不變,且在傳遞中能夠抗干擾?;谛〔ǚ治龅膲嚎s方法很多,具體有小波壓縮,小波包壓縮,小波變換向量壓縮等。
(2)小波也可以用于信號的濾波去噪、信號的時頻分析、信噪分離與提取弱信號、求分形指數(shù)、信號的識別與診斷以及多尺度邊緣檢測等。
(3)小波分析在工程技術等方面的應用概括的包括計算機視覺、曲線設計、湍流、遠程宇宙的研究與生物醫(yī)學方面。
2 多尺度分析

在這里插入圖片描述


3 圖像的分解和量化

在這里插入圖片描述


4 圖像壓縮編碼

在這里插入圖片描述


5 圖像編碼評價

在這里插入圖片描述

unction varargout = multi_wavelet(varargin) % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', ? ? ? mfilename, ... ? ? ? ? ? ? ? ? ? 'gui_Singleton', ?gui_Singleton, ... ? ? ? ? ? ? ? ? ? 'gui_OpeningFcn', @multi_wavelet_OpeningFcn, ... ? ? ? ? ? ? ? ? ? 'gui_OutputFcn', ?@multi_wavelet_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 multi_wavelet is made visible. function multi_wavelet_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 multi_wavelet (see VARARGIN) % Choose default command line output for multi_wavelet handles.output = hObject; % Update handles structure guidata(hObject, handles); % UIWAIT makes multi_wavelet wait for user response (see UIRESUME) % uiwait(handles.figure1); % --- Outputs from this function are returned to the command line. function varargout = multi_wavelet_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 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) global I ; [fname,pname]=uigetfile('*.*'); I=imread(strcat(pname,'\',fname)); [m,n,k]=size(I); if k~=1 I=rgb2gray(I); end I=double(I); axes(handles.axes1); imshow(mat2gray(I)); title('原始圖像的灰度圖'); % --- Executes on selection change in popupmenu1. function popupmenu1_Callback(hObject, eventdata, handles) % hObject ? ?handle to popupmenu1 (see GCBO) % eventdata ?reserved - to be defined in a future version of MATLAB % handles ? ?structure with handles and user data (see GUIDATA) % Hints: contents = get(hObject,'String') returns popupmenu1 contents as cell array % ? ? ? ?contents{get(hObject,'Value')} returns selected item from popupmenu1 global I ; w1=get(handles.popupmenu1,'value') switch w1 ? %選擇小波基 case 1 ? w2= 'bior 3.7'; case 2 ? ?w2='bior 1.1'; case 3 ? ? ? ?w2='bior 1.3'; case 4 ? ? ? ?w2='bior 1.5'; case 5 ? ? ? w2='bior 2.2'; case 6 ? ? w2='bior 2.4'; case 7 ? ? w2= 'bior 2.6'; case 8 ? ? ?w2='bior 2.8'; case 9 ? ? ? ?w2='bior 3.1'; case 10 ? ? ? ?w2='bior 3.3'; case 11 ? ? ? ?w2='bior 3.5'; case 12 ? ? ? ?w2='bior 3.9'; case 13 ? ? ? ?w2='bior 4.4'; case 14 ? ? ? ?w2='bior 5.5'; case 15 ? ? ? ?w2='bior 6.8'; case 16 ? ? ? ?w2='db1'; case 17 ? ? ? ?w2='db4'; case 18 ? ? ? ?w2='db15'; end disp('壓縮前圖像的大小');%顯示文字 whos('I') ? ? ? ? ? %顯示圖像屬性 % 進行二維小波變換 'bior3.7' [a,b] = wavedec2(I, 3,w2); % 分三層,wavedec2:2維多層小波分解 % 提取各層低頻信息 c1 = appcoef2( a, b,w2, 1 );%提取二維小波分解低頻系數(shù) axes(handles.axes18); imshow(c1, []); title('第一層低頻部分:'); ca1=wcodemat(c1,440,'mat',0); ? %對第一層信息進行量化編碼 axes(handles.axes2); imshow(ca1, []); title('第一次壓縮后圖像:'); disp('第一次壓縮圖像的大小');%顯示文字 whos('ca1'); c2= appcoef2( a, b,w2, 2 ); axes(handles.axes19); imshow(c2, []); title('第二層低頻部分:'); ca2=wcodemat(c2,440,'mat',0); ? %對第一層信息進行量化編碼 axes(handles.axes6);

三、運行結果

在這里插入圖片描述


在這里插入圖片描述

?


【圖像壓縮】基于小波變換實現(xiàn)圖像壓縮matlab源碼含 GUI的評論 (共 條)

分享到微博請遵守國家法律
永登县| 肃宁县| 康保县| 宜章县| 汉源县| 历史| 谢通门县| 马边| 贵州省| 绥滨县| 巴林右旗| 塘沽区| 普格县| 镇安县| 历史| 肥东县| 沧州市| 墨竹工卡县| 渝中区| 日喀则市| 武功县| 清涧县| 比如县| 会东县| 永寿县| 哈巴河县| 赤峰市| 五华县| 彭水| 遂平县| 治多县| 句容市| 兴安县| 泽普县| 汤原县| 衡阳市| 牟定县| 阳谷县| 博白县| 久治县| 通州区|