利用matlab读取lena.bmp图像,观察其直方图,并进行均衡化。 要求:显示四幅图像(原图,其直方图,均衡化后的图像及其直方图)
时间: 2023-06-12 10:03:46 浏览: 86
以下是实现的MATLAB代码:
```matlab
% 读取lena.bmp图像
img = imread('lena.bmp');
% 显示原图
subplot(2,2,1);
imshow(img);
title('Original Image');
% 显示原图的直方图
subplot(2,2,2);
imhist(img);
title('Histogram of Original Image');
% 进行直方图均衡化
eq_img = histeq(img);
% 显示均衡化后的图像
subplot(2,2,3);
imshow(eq_img);
title('Equalized Image');
% 显示均衡化后的直方图
subplot(2,2,4);
imhist(eq_img);
title('Histogram of Equalized Image');
```
执行该代码后,会显示原图、原图的直方图、均衡化后的图像以及均衡化后的直方图。结果如下图所示:
![lena_histeq](https://cdn.jsdelivr.net/gh/Yousazoe/picgo-repo/img/lena_histeq.jpg)
相关问题
用matlab对图片进行直方图均衡化操作
以下是对一张灰度图像进行直方图均衡化的matlab代码:
1. 读取图像
```matlab
img = imread('lena_gray.bmp');
```
2. 计算原始图像直方图
```matlab
imhist(img);
```
3. 进行直方图均衡化
```matlab
img_eq = histeq(img);
```
4. 显示均衡化后的图像和直方图
```matlab
subplot(2,2,1); imshow(img); title('原始图像');
subplot(2,2,2); imhist(img); title('原始图像直方图');
subplot(2,2,3); imshow(img_eq); title('均衡化后的图像');
subplot(2,2,4); imhist(img_eq); title('均衡化后的直方图');
```
运行代码后会生成一个包含原始图像、原始图像直方图、均衡化后的图像和均衡化后的直方图的图像窗口。
用matlab用直方图法获取阈值并对三幅图像进行分割 在1个figure中的左列显示3幅原始图像,中间一列显示各自的直方图,最右一列显示对应的分割结果,并做适当标注
好的,以下是MATLAB代码实现:
```matlab
% 读取三幅图像
cell = imread('cell.png');
circuit = imread('circuit.tif');
lena = imread('lena_gray.bmp');
% 创建figure
figure('Name','图像分割','NumberTitle','off');
% 显示3幅原始图像
subplot(3,3,1);
imshow(cell);
title('cell');
subplot(3,3,4);
imshow(circuit);
title('circuit');
subplot(3,3,7);
imshow(lena);
title('lena');
% 显示3幅图像的直方图
subplot(3,3,2);
imhist(cell);
title('cell 直方图');
subplot(3,3,5);
imhist(circuit);
title('circuit 直方图');
subplot(3,3,8);
imhist(lena);
title('lena 直方图');
% 对cell图像进行分割
level_cell = graythresh(cell);
cell_seg = imbinarize(cell, level_cell);
% 对circuit图像进行分割
level_circuit = graythresh(circuit);
circuit_seg = imbinarize(circuit, level_circuit);
% 对lena图像进行分割
level_lena = graythresh(lena);
lena_seg = imbinarize(lena, level_lena);
% 显示3幅图像的分割结果
subplot(3,3,3);
imshow(cell_seg);
title('cell 分割结果');
subplot(3,3,6);
imshow(circuit_seg);
title('circuit 分割结果');
subplot(3,3,9);
imshow(lena_seg);
title('lena 分割结果');
```
运行代码后,将会弹出一个名为“图像分割”的窗口,其中左列显示三幅原始图像,中间一列显示各自的直方图,最右一列显示对应的分割结果。