[数字图像处理](四)直⽅图均衡化[HE]算法鸭腿做法
客服是什么图像处理(四)
阮籍咏怀诗直⽅图均衡化
0____前⾔
直⽅图操作是图像处理中的⼀个基本⼯具。从观察⼀些图像的直⽅图中我们可以发现,在暗图像中 ,⼤多数直⽅图灰度容集在灰度低端;类似的在亮图像的直⽅图中,⼤多数直⽅图灰度容集在灰度级的⾼端。直⽅图均衡化就是通过计算每⼀灰度级数出现的概率,并将得到的概率前缀和映射到原图像中的过程,此处介绍的是最基本的基于全图像的均衡化的
HE(直⽅图均衡化)算法,之后会继续介绍AHE(⾃适应直⽅图均衡化)与CLAHE(限制对⽐度直⽅图均衡)。
1____算法流程
读⼊图像预处理
统计每个灰度级数在图像中出现的次数
计算每个灰度级数于总像素的概率,并统计数组的前缀和
将得到的前缀和映射到原图像数组中
2____MATLAB实现
clc;
clo all;
clear all;
% 读⼊,预处理
im = imread('p21.png');
imgray = rgb2gray(im);
figure;
subplot(2,2,1);
消费经济学imshow(imgray);
% 统计每个灰度级数
hist = zeros(1,256);
[n,m] = size(imgray);
% 后⾯要+1因为图像的范围是在0~255,但是matlab的数组是从1开始映射的
for i = 1:1:n
神秘王爷独宠妃
for j = 1:1:m
hist( imgray(i,j)+1 ) = hist( imgray(i,j) +1) + 1;
end
end
subplot(2,2,2);
bar(hist);
% 求分布概率前缀和
pro = zeros(1,256);
sumim = sum(hist)
pro(1) = hist(1)/sumim;
for i = 2:1:256
女人微信名pro(i) = pro(i-1)+hist(i)/sumim;
end
% 灰度映射
transim = zeros(n,m);
for i = 1:1:n
自我介绍作文for j = 1:1:m
transim(i,j) = pro(imgray(i,j))*255 + 0.5;
end
end
transim = uint8(transim);
事业英语
subplot(2,2,3);
imshow(transim);
subplot(2,2,4);
imhist(transim);