用matlab_实现基于直方图均衡化的彩色图像增强 - 成人教育 - 道客巴巴 http://www.doc88.com/p-9042097312218.html
数字图像处理之直方图均衡化 - yoyo_sincerely - 博客园
HE.m文件:
RGB = imread('1233212.png'); % 读取彩色图
subplot();
imshow(RGB);
title('原图'); [R, C, K] = size(RGB); % 新增的K表示颜色通道数 % 统计每个像素值出现次数
cnt = zeros(K, );
for i = : R
for j = : C
for k = : K
cnt(k, RGB(i, j, k) + ) = cnt(k, RGB(i, j, k) + ) + ;
end
end
end f = zeros(, );
f = double(f); cnt = double(cnt); % 统计每个像素值出现的概率, 得到概率直方图
for k = : K
for i = :
f(k, i) = cnt(k, i) / (R * C);
end
end % 求累计概率,得到累计直方图
for k = : K
for i = :
f(k, i) = f(k, i - ) + f(k, i);
end
end % 用f数组实现像素值[, ]的映射。
for k = : K
for i = :
f(k, i) = f(k, i) * ;
end
end % 完成每个像素点的映射
RGB = double(RGB);
for i = : R
for j = : C
for k = : K
RGB(i, j, k) = f(k, RGB(i, j, k) + );
end
end
end % 输出
RGB = uint8(RGB);
subplot();
imshow(RGB);
title('处理后');
Matlab 直方图均衡化 - CSDN博客 https://blog.csdn.net/acmore_xiong/article/details/53183131