数字图像的直方图均衡matlab
时间: 2023-08-06 10:10:46 浏览: 21
在 Matlab 中对数字图像进行直方图均衡可以使用 `histeq` 函数。具体步骤如下:
1. 读入数字图像并将其转换为灰度图像。
```matlab
I = imread('image.jpg');
I = rgb2gray(I);
```
2. 对图像进行直方图均衡。
```matlab
J = histeq(I);
```
3. 显示原始图像和直方图均衡后的图像。
```matlab
subplot(1,2,1); imshow(I); title('原始图像');
subplot(1,2,2); imshow(J); title('直方图均衡后的图像');
```
完整代码如下:
```matlab
I = imread('image.jpg');
I = rgb2gray(I);
J = histeq(I);
subplot(1,2,1); imshow(I); title('原始图像');
subplot(1,2,2); imshow(J); title('直方图均衡后的图像');
```
其中,`subplot(1,2,1)` 表示将图像显示在一个 1 行 2 列的子图中的第一个位置,`subplot(1,2,2)` 表示将图像显示在一个 1 行 2 列的子图中的第二个位置。通过 `imshow` 函数显示图像,并通过 `title` 函数添加标题。
相关问题
matlab数字图像直方图均衡
要进行数字图像直方图均衡,可以使用MATLAB中的histeq函数。该函数可以将图像的灰度级分布均衡化,从而增强图像的对比度和亮度。
使用方法如下:
1. 读取图像并转换为灰度图像
```matlab
img = imread('image.jpg');
gray_img = rgb2gray(img);
```
2. 对灰度图像进行直方图均衡化
```matlab
eq_img = histeq(gray_img);
```
3. 显示原始图像和均衡化后的图像
```matlab
subplot(1,2,1), imshow(gray_img), title('Original Image');
subplot(1,2,2), imshow(eq_img), title('Equalized Image');
```
matlab数字图像的直方图均衡
Matlab中数字图像的直方图均衡可以通过以下步骤实现:
1.读取图像并将其转换为灰度图像(如果原始图像不是灰度图像)。
2.计算图像的灰度直方图。
3.计算原图的灰度分布概率。
4.计算原图灰度的累计分布。
5.计算原、新图灰度值的影射关系。
6.使用影射关系对原始图像进行直方图均衡化。
7.显示原始图像和均衡化后的图像。
下面是一个示例代码:
```matlab
% 读取图像并转换为灰度图像
img = imread('lena.jpg');
gray_img = rgb2gray(img);
% 计算灰度直方图
hist = imhist(gray_img);
% 计算灰度分布概率
p = hist / numel(gray_img);
% 计算灰度的累计分布
cdf = cumsum(p);
% 计算原、新图灰度值的影射关系
map = uint8(255 * cdf);
% 对原始图像进行直方图均衡化
eq_img = map(gray_img + 1);
% 显示原始图像和均衡化后的图像
subplot(1, 2, 1), imshow(gray_img), title('原始图像');
subplot(1, 2, 2), imshow(eq_img), title('均衡化后的图像');
```