在新建的m文件中编写图像均衡代码,实现对图像灰度级点数、概率统计并计算概率累计分布函数
时间: 2024-03-25 07:40:42 浏览: 16
好的,下面是实现对图像灰度级点数、概率统计并计算概率累计分布函数的 Matlab 代码:
```matlab
% 读取图像
I = imread('image.jpg');
% 转换为灰度图像
gray_I = rgb2gray(I);
% 计算灰度级点数
num_gray_levels = 256;
% 初始化灰度级频数计数器
gray_level_counts = zeros(1, num_gray_levels);
% 统计每个灰度级的出现次数
for i = 1 : size(gray_I, 1)
for j = 1 : size(gray_I, 2)
gray_level_counts(gray_I(i, j) + 1) = gray_level_counts(gray_I(i, j) + 1) + 1;
end
end
% 计算每个灰度级的概率
gray_level_probabilities = gray_level_counts / (size(gray_I, 1) * size(gray_I, 2));
% 计算概率累计分布函数
cdf = cumsum(gray_level_probabilities);
% 显示图像及其灰度级点数和概率
figure;
subplot(2, 1, 1);
imshow(gray_I);
title('原图像');
subplot(2, 2, 3);
bar(0 : num_gray_levels - 1, gray_level_counts);
title('灰度级点数');
subplot(2, 2, 4);
bar(0 : num_gray_levels - 1, gray_level_probabilities);
title('灰度级概率');
% 显示概率累计分布函数
figure;
plot(0 : num_gray_levels - 1, cdf);
title('概率累计分布函数');
```
这段代码中,我们首先读取了一幅彩色图像,并将其转换为灰度图像。然后,我们计算了灰度级的数量,并初始化了一个灰度级频数计数器。接着,我们遍历图像的每个像素,统计每个灰度级出现的次数,然后计算每个灰度级的概率。最后,我们使用 Matlab 内置函数 `cumsum` 计算概率累计分布函数,并将图像、灰度级点数、灰度级概率以及概率累计分布函数分别显示出来。
希望这段代码能够帮助你完成任务!