编程实现对一幅图像进行均衡处理,要求最终在一个窗体内显示四张图像(2行2列) :原图像、原图像直方图、均衡后的图像、均衡后的图像直方图,并为每张图像加上标题(图像标题可自拟)。 提示:原图片为Matlab自带的Boat.tiff
时间: 2024-12-18 07:27:11 浏览: 5
要在MATLAB中实现这个任务,首先需要加载Boat.tiff图像并对其进行预处理,包括读取图像、计算直方图以及进行图像均衡化。以下是步骤概述:
1. **加载图像**:
```matlab
img = imread('Boat.tiff'); % 加载原图像
figure, title('Original Image'), imshow(img);
```
2. **直方图计算**:
```matlab
histogramEqualization = false; % 是否要显示直方图
if histogramEqualization
histImg = imhist(img); % 计算原图像的直方图
figure, subplot(2, 2, 2), stem(histImg), title('Original Image Histogram');
end
```
3. **图像均衡化** (如果未设置`histogramEqualization`):
```matlab
if histogramEqualization
img_eq = imadjust(img); % 使用imadjust函数进行图像均衡化
else
img_eq = img;
end
```
4. **显示均衡后的图像**:
```matlab
subplot(2, 2, 3), imshow(img_eq), title('Equalized Image');
```
5. **再次计算均衡化后的直方图** (如果之前设置过`histogramEqualization`):
```matlab
if histogramEqualization
eq_hist = imhist(img_eq); % 计算均衡后图像的直方图
figure, subplot(2, 2, 4), stem(eq_hist), title('Equalized Image Histogram');
end
```
6. **显示所有四个图像**:
```matlab
set(gcf, 'Position', [0 0 800 600]); % 设置窗口大小方便查看
```
在这个过程中,你可以根据需要调整图像显示的位置、大小以及其他细节。完成上述操作后,你应该会在同一个窗口内看到原始图像、原图像直方图、均衡后的图像以及均衡后的图像直方图。
阅读全文