数字图像处理-图像编码与压缩

1 实验一

1.1 实验题目

(1) 计算一幅图像的熵。

(2) 用霍夫曼编码压缩图像,并显示压缩前后图像。

(3) 计算霍夫曼编码的压缩率和效率。

(4) 考虑对相邻像素的差值编码。新差值图像的熵是多少?

1.2 程序源代码

Matlab 复制代码
% 计算熵
clear,clc,close ALL;
tic
f1=imread('photo.jpg');
n=256;
%计算图的熵
x1=double(f1);
P1=hist(x1(:),n);
P1=P1/sum(P1(:));
i1=find(P1);
h1=-sum(P1(i1).*log2(P1(i1)));
figure;
subplot(111),imshow(f1),title(['图 1 的熵为:',num2str(h1)]);
toc
I = imread('photo.jpg');
I = imresize(I,0.1); %将图像大小缩小(可以不缩小,但是用 matlab 进行编译会花很长时间)
[M,N] = size(I); %将读取的图像转为二维矩阵
I1 = I(:); %转为一维向量
P = zeros(1,256);
%获取各符号的概率;
for i = 0:255
P(i+1) = length(find(I1 == i))/(M*N);
end
k = 0:255;
dict = huffmandict(k,P); %生成字典
enco = huffmanenco(I1,dict); %编码
deco = huffmandeco(enco,dict); %解码
Ide = col2im(deco,[M,N],[M,N],'distinct'); %把向量重新转换成图像块;
figure;
subplot(1,2,1);imshow(I);title('original image');
subplot(1,2,2);imshow(uint8(Ide));title('deco image')

1.3 计算公式

编码压缩效率=等长码所占内存/哈夫曼编码所占内存

2 实验二

2.1 实验题目

考虑一列数据{108,122,131,195,172,173,58,90}。若用 4 比特精度来均匀量化它,计 算量化后数据的均方根误差,给出量化前后的曲线图(plot 函数)。

2.2 程序源代码

Matlab 复制代码
%均匀量化
clc;
close all;
clear all;
%量化前的数据曲线图
data = [108,122,131,195,172,173,58,90];
x = 1:length(data);
plot(x, data);
title('Original Data');
xlabel('Index');
ylabel('Value');
%进行均匀量化
quantized_data = round(data / (max(data) - min(data)) * 15);
%计算均方根误差
mse = sqrt(mean((data - quantized_data).^2));
%量化后的数据曲线图
plot(x, quantized_data);
title('Quantized Data');
xlabel('Index');
ylabel('Value');

2.3 实验结果

相关推荐
zhengfei611几秒前
全网第一款用于渗透测试和保护大型语言模型系统——DeepTeam
人工智能
爱笑的眼睛114 分钟前
Flask上下文API:从并发陷阱到架构原理解析
java·人工智能·python·ai
科创致远7 分钟前
esop系统可量化 ROI 投资回报率客户案例故事-案例1:宁波某精密制造企业
大数据·人工智能·制造·精益工程
阿杰学AI8 分钟前
AI核心知识60——大语言模型之NLP(简洁且通俗易懂版)
人工智能·ai·语言模型·自然语言处理·nlp·aigc·agi
π同学9 分钟前
遗传算法学习二之求TSP问题
matlab·遗传算法·tsp问题
IT猿手11 分钟前
融合DWA的青蒿素优化算法(Artemisinin Optimization Algorithm, AOA)求解无人机三维动态避障路径规划,MATLAB代码
算法·matlab·无人机
丹宇码农11 分钟前
使用AI一步生成音视频文件的会议纪要或者课后笔记
人工智能·笔记·音视频
自不量力的A同学12 分钟前
xAI 发布 Grok Voice Agent API
人工智能·语音识别
别惹CC13 分钟前
Spring AI 进阶之路05:集成 MCP 协议实现工具调用
java·人工智能·spring