matlab实现直方图规定化
时间: 2023-11-13 10:54:03 浏览: 230
matlab.rar_均衡化处理_直方图 规定化_直方图均衡_直方图均衡化 matlab_直方图规定化
直方图规定化是将一幅图像的灰度级分布变换为指定的灰度级分布。具体实现步骤如下:
1. 计算原始图像和目标图像的累积分布函数(CDF);
2. 将原始图像的每个像素值映射到目标图像的像素值,使得它们的CDF尽量接近;
3. 输出规定化后的图像。
以下是 MATLAB 代码实现:
```matlab
% 读入原始图像和目标图像
srcImg = imread('srcImg.jpg');
targetImg = imread('targetImg.jpg');
% 计算原始图像和目标图像的直方图
srcHist = imhist(srcImg);
targetHist = imhist(targetImg);
% 计算原始图像和目标图像的累积分布函数
srcCDF = cumsum(srcHist) / numel(srcImg);
targetCDF = cumsum(targetHist) / numel(targetImg);
% 映射原始图像的像素值到目标图像的像素值
srcMap = zeros(256, 1);
for i = 1 : 256
[~, index] = min(abs(srcCDF(i) - targetCDF));
srcMap(i) = index - 1;
end
% 应用映射关系,输出规定化后的图像
resultImg = intlut(srcImg, srcMap);
imshow(resultImg);
```
阅读全文