網(wǎng)站注冊(cè)協(xié)議怎樣自己做網(wǎng)站
目錄
1.算法運(yùn)行效果圖預(yù)覽
2.算法運(yùn)行軟件版本
3.部分核心程序
4.算法理論概述
4.1 編碼單元的表示
4.2編碼單元的編碼
5.算法完整程序工程
1.算法運(yùn)行效果圖預(yù)覽
(完整程序運(yùn)行后無水印)
下圖是隨著方塊大小的變化,圖像的壓縮率以及對(duì)應(yīng)的圖像質(zhì)量指標(biāo)PSNR的變化趨勢(shì)曲線。
2.算法運(yùn)行軟件版本
matlab2022a
3.部分核心程序
(完整版代碼包含詳細(xì)中文注釋和操作步驟視頻)
...........................................................................
figure;
subplot(121);
plot(sets,tr,'-r>',...'LineWidth',1,...'MarkerSize',6,...'MarkerEdgeColor','k',...'MarkerFaceColor',[0.9,0.9,0.0])
xlabel('方框大小');
ylabel('壓縮率');
subplot(122);
plot(sets,PSNR,'-r>',...'LineWidth',1,...'MarkerSize',6,...'MarkerEdgeColor','k',...'MarkerFaceColor',[0.9,0.9,0.0])xlabel('方框大小');
ylabel('壓縮后圖像PSNR');% --- 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)[tr1,PSNR1]=code2(2);disp(['壓縮率',num2str(tr1)])
disp(['PSNR',num2str(PSNR1)])
% --- Executes on button press in pushbutton5.
function pushbutton5_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton5 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)[tr1,PSNR1]=code2(4);disp(['壓縮率',num2str(tr1)])
disp(['PSNR',num2str(PSNR1)])
% --- Executes on button press in pushbutton6.
function pushbutton6_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton6 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)global tr
global PSNR
global tr2
global PSNR2
[tr1,PSNR1]=code2(8);disp(['壓縮率',num2str(tr1)])
disp(['PSNR',num2str(PSNR1)])sets = [2,4,8,16,32,64,128,256];for ij = 1:length(sets)[tr2(ij),PSNR2(ij)] = code(sets(ij));
endfigure;
subplot(121);
plot(sets,tr2,'-r>',...'LineWidth',1,...'MarkerSize',6,...'MarkerEdgeColor','k',...'MarkerFaceColor',[0.9,0.9,0.0])xlabel('方框大小');
ylabel('壓縮率');subplot(122);
plot(sets,PSNR2,'-r>',...'LineWidth',1,...'MarkerSize',6,...'MarkerEdgeColor','k',...'MarkerFaceColor',[0.9,0.9,0.0])xlabel('方框大小');
ylabel('壓縮后圖像PSNR');
009_030m
4.算法理論概述
? ? ? 隨著信息技術(shù)的飛速發(fā)展,圖像數(shù)據(jù)在各個(gè)領(lǐng)域中的應(yīng)用越來越廣泛。然而,圖像數(shù)據(jù)通常具有較大的數(shù)據(jù)量,這給存儲(chǔ)、傳輸和處理帶來了很大的挑戰(zhàn)。為了解決這個(gè)問題,圖像壓縮技術(shù)應(yīng)運(yùn)而生。圖像壓縮的目的是在不損失圖像質(zhì)量的前提下,盡可能地減少圖像數(shù)據(jù)的存儲(chǔ)空間和傳輸帶寬。方塊編碼是一種基于區(qū)域劃分的圖像壓縮方法,它將圖像劃分為若干個(gè)大小相同的方塊,然后對(duì)每個(gè)方塊進(jìn)行編碼。方塊編碼具有簡(jiǎn)單、高效、易于實(shí)現(xiàn)等優(yōu)點(diǎn),在圖像壓縮領(lǐng)域得到了廣泛的應(yīng)用。
(一)方塊的劃分
? ? ? ?方塊編碼將圖像劃分為若干個(gè)大小相同的方塊,每個(gè)方塊通常由若干個(gè)像素組成。方塊的大小可以根據(jù)圖像的特點(diǎn)和壓縮要求進(jìn)行選擇,一般為 4x4、8x8 或 16x16 等。
(二)灰度值的量化
? ? ? ?在方塊編碼中,每個(gè)像素的灰度值通常被量化為有限個(gè)等級(jí)。量化的目的是減少灰度值的取值范圍,從而降低編碼的復(fù)雜度。量化的方法可以采用均勻量化或非均勻量化。
(三)編碼單元的定義
? ? ? ?方塊編碼中的編碼單元是指一個(gè)方塊及其對(duì)應(yīng)的量化后的灰度值。編碼單元通常用一個(gè)整數(shù)來表示,這個(gè)整數(shù)可以通過對(duì)編碼單元進(jìn)行編碼得到。
4.1 編碼單元的表示
? ? ? ?為了方便編碼,我們可以將編碼單元表示為一個(gè)一維數(shù)組。具體方法是將編碼單元中的像素按照一定的順序排列成一個(gè)一維數(shù)組,然后用這個(gè)一維數(shù)組來表示編碼單元。
4.2編碼單元的編碼
? ? ? 方塊編碼的核心是對(duì)編碼單元進(jìn)行編碼。編碼的目的是將編碼單元表示為一個(gè)盡可能短的二進(jìn)制代碼。編碼的方法可以采用哈夫曼編碼、算術(shù)編碼等。
5.算法完整程序工程
OOOOO
OOO
O