运用matlab编写一个能计算一张图像直方图的程序和直方图均衡的程序,输出均衡前后的直方图。
时间: 2024-02-01 12:15:30 浏览: 74
以下是Matlab的示例代码:
计算图像直方图:
```matlab
% 读取图像
img = imread('test.jpg');
% 计算直方图
histogram = imhist(img);
% 绘制直方图
plot(histogram);
title('Image Histogram');
xlabel('Intensity Level');
ylabel('Pixel Count');
```
直方图均衡:
```matlab
% 读取图像
img = imread('test.jpg');
% 计算直方图
histogram = imhist(img);
% 计算累计分布函数
cdf = cumsum(histogram) / numel(img);
% 计算均衡化后的像素值
equalized_img = uint8(255 * cdf(double(img)+1));
% 绘制均衡化前后的直方图
subplot(2,1,1);
imshow(img);
title('Original Image');
subplot(2,1,2);
imhist(equalized_img);
title('Equalized Image Histogram');
```
上述代码可以计算出一张图像的直方图,并且对图像进行直方图均衡处理,最后输出均衡化前后的直方图。
阅读全文