图像处理直方图的规定化和均衡化
时间: 2023-10-13 15:08:06 浏览: 95
图像直方图规定化是将一幅图像的直方图变换为另一幅指定直方图的过程这个过程一般分为两步,首先对于原始图像计算其累积分布函数(CDF),然后根据目标分布的CDF进行变换。这种技术常用于匹配两幅不同图像的灰度分布,使它们具有相同的灰度特性,例如对比度、亮度等。
图像直方图均衡化是将一幅图像的直方图进行变换,使得图像的灰度级数分布更加均匀。这个过程首先计算原始图像的累积分布函数(CDF),然后对其进行归一化得到新的灰度值分布函数。最后将原始图像中的每个像素值映射到新的灰度值上。这种技术常用于增强图像的视觉效果和对比度。
相关问题
MATLAB对灰度图像进行直方图均衡化和直方图规定化处理代码
MATLAB是一种强大的数值计算环境,对于图像处理也非常方便。以下是两个常用图像处理操作——灰度图像直方图均衡化(Histogram Equalization)和直方图规定化(Histogram Specification)的基本代码示例:
**1. 灰度图像直方图均衡化**:
```matlab
% 加载灰度图像
img = imread('your_image_name.jpg', 'gray');
% 计算原始灰度直方图
histogram_eq = imhist(img);
% 创建一个新的直方图大小
new_histogram_size = length(unique(img(:)));
% 定义新的累积分布函数 (CDF)
cdf = cumsum(histogram_eq) / sum(histogram_eq);
% 使用新的CDF进行线性插值,得到均衡化的像素值
eq_img = interp1(linspace(0, 1, size(img, 1)), img(:), cdf(img(:))', 'linear');
% 显示原图和均衡化后的图像
subplot(1, 2, 1), imshow(img);
title('Original Image');
subplot(1, 2, 2), imshow(uint8(eq_img));
title('Histogram Equalized Image');
```
**2. 直方图规定化**:
直方图规定化通常是将图像调整到特定的直方图形状,例如预设的均匀分布。这里假设你有一个目标直方图`target_hist`:
```matlab
% 定义目标直方图
target_hist = your_target_histogram;
% 计算归一化的目标累计分布函数 (CDF)
target_cdf = cumsum(target_hist) / sum(target_hist);
% 对每个像素应用目标直方图的CDF
spec_img = interp1(linspace(0, 1, size(img, 1)), img(:), target_cdf, 'linear');
% 显示原图和规定化后的图像
subplot(1, 2, 1), imshow(img);
title('Original Image');
subplot(1, 2, 2), imshow(uint8(spec_img));
title('Histogram Specified Image');
```
别忘了替换`your_image_name.jpg`和`your_target_histogram`为你实际的图片文件名和目标直方图。
直方图均衡化和规定化
直方图均衡化是一种对比度提升方法,通过对图像的像素统计分布进行调整,使得图像的直方图在全部灰度范围内均匀分布,从而增强图像的对比度。它通过对图像进行非线性拉伸,将原始图像的灰度直方图从比较集中的某个区域变成在全部灰度范围内的均匀分布。这种方法通常用来增加图像的局部对比度,特别适用于图像前景和背景明暗度差异较大的情况,可以使目标区域从背景中脱离出来。
而直方图规定化是在直方图均衡化的基础上的一种方法,它通过对原始图像进行变换,使得变换后的图像的直方图与我们规定的直方图相匹配。实际上,规定化也是一种均衡化的方法,它可以将均衡化的结果作为中间结果,建立起原始图像与固定化图像之间的联系。
简而言之,直方图均衡化是一种对比度增强的方法,通过调整图像的灰度分布使其更均匀;而直方图规定化则是在直方图均衡化的基础上,使得图像的直方图与指定的直方图相匹配,实现对图像的定制化处理。
阅读全文
相关推荐
















