为什么我的这段代码计算出的压缩率为1.4294e-07,是哪里出问题了麻烦大神帮忙纠正
% 读入原始图像
X = imread('D:\图像处理实验\第五次实验\实验五_图像编码\lenna_8.bmp');
original = numel(X)*8
% 将图像转换成灰度图,并将图像数据格式转换为double类型
Y = double(im2gray(X));
Y = round(Y);
[M, N] = size(Y);
% 计算图像像素值的直方图
h = imhist(Y);
% 计算每个像素值出现的概率
p = h / (M * N);
% 构建霍夫曼树
[~, leaves, code] = huffbuild(p);
% 对图像进行编码
comp = huffmanEncode(Y, code, leaves);
% 计算压缩率
bits_per_pixel = numel(comp) / (M * N);
compression_ratio = bits_per_pixel / original;
disp(['压缩率为: ' num2str(compression_ratio)]);
function [root, leaves, code] = huffbuild(p)
% 构建霍夫曼树
%
% 输入参数:
% p:每个像素值出现的概率
%
% 输出参数:
% root:霍夫曼树的根节点
% leaves:霍夫曼树的叶子节点
% code:每个像素值对应的霍夫曼编码
n = numel(p