对灰度图像进行直方图均衡处理matlab代码
时间: 2023-09-10 22:09:09 浏览: 104
以下是对灰度图像进行直方图均衡处理的MATLAB代码示例:
```matlab
% 读入灰度图像
img = imread('lena.jpg');
% 计算图像直方图
histogram = imhist(img);
% 计算累积直方图
cdf = cumsum(histogram) / numel(img);
% 对原图像进行直方图均衡处理
eq_img = uint8(255 * cdf(img + 1));
% 显示处理前后的图像
subplot(1,2,1), imshow(img), title('原图像');
subplot(1,2,2), imshow(eq_img), title('均衡化后的图像');
```
这段代码中,首先使用 imread() 函数读入一张灰度图像,然后使用 imhist() 函数计算图像的直方图。接着,使用 cumsum() 函数计算累积直方图,并将其除以图像像素总数得到概率密度函数。最后,使用 cdf() 函数将原图像进行直方图均衡处理,得到均衡化后的图像。最后使用 subplot() 和 imshow() 函数将处理前后的图像显示在同一窗口中。
需要注意的是,这里使用的 cdf() 函数和 cumsum() 函数是自己定义的函数,代码如下:
```matlab
function y = cdf(x)
y = zeros(size(x));
for i = 1:numel(x)
y(i) = sum(x(1:i));
end
```
```matlab
function y = cumsum(x)
y = zeros(size(x));
for i = 1:numel(x)
y(i) = sum(x(1:i));
end
```
这两个函数都是利用循环计算给定向量的累积和。在实际使用中,也可以直接使用 MATLAB 自带的 cumsum() 函数代替这两个函数。
阅读全文
相关推荐
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![doc](https://img-home.csdnimg.cn/images/20241231044833.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)