用matlab实现对图像直方图均衡
时间: 2023-08-26 21:27:20 浏览: 84
利用matlab实现直方图均衡化
5星 · 资源好评率100%
好的,我可以为您提供一个基本的Matlab代码实现直方图均衡化的方法:
```matlab
% 读取图像
img = imread('lena.jpg');
% 计算图像直方图
[h, w] = size(img);
hist = imhist(img);
% 计算累积分布函数
cdf = cumsum(hist)/(h*w);
% 计算直方图均衡化后的像素值
new_pixels = round(255*cdf(double(img)+1));
% 生成新的图像
new_img = reshape(new_pixels, h, w);
% 显示原始图像和直方图均衡化后的图像
subplot(1,2,1),imshow(img);title('Original Image');
subplot(1,2,2),imshow(new_img);title('Equalized Image');
```
在上述代码中,我们首先使用`imread`函数读取了名为lena.jpg的图像。接着,使用`imhist`函数计算了该图像的直方图。然后,我们计算了累积分布函数,并使用它来计算直方图均衡化后的像素值。最后,我们将新像素值重新整形为图像,并将原始图像和直方图均衡化后的图像显示在同一窗口中。
希望这可以帮助到您!
阅读全文