数字图像处理——直方图均衡(MATLAB)
程序员文章站
2022-04-01 10:25:22
...
数字图像处理中图片的直方图均衡,原理不再介绍。实现如下,有问题请留言。
function zy=Histogram(I)
[R, C] = size(I);
count_pixel= zeros(1, 256);
%计算每个灰度级的像素个数
for i = 1 : R
for j = 1 : C
count_pixel(1, I(i, j) + 1) = count_pixel(1, I(i, j) + 1) + 1;
end
end
Pixel_probability = zeros(1, 256);
Pixel_probability = double(Pixel_probability); count_pixel = double(count_pixel);
% 统计每个灰度级概率
for i = 1 : 256
Pixel_probability(1, i) = count_pixel(1, i) / (R * C);
end
% 求灰度级的累计概率
for i = 2 : 256
Pixel_probability(1, i) = Pixel_probability(1, i - 1) + Pixel_probability(1, i);
end
subplot(2,3,3);plot(Pixel_probability);
title('结果概率累加')
% 用Pixel_probability数组实现灰度级[0, 255]的映射。
%将灰度级取最接近的整数和取浮点数时候的不同情况
for i = 1 : 256
%取最接近的整数的灰度级
Pixel_probability(1, i) = round(Pixel_probability(1, i) * 255);
%直接使用浮点数
%Pixel_probability(1, i) = Pixel_probability(1, i) * 255;
end
%display(Pixel_probability);
% 将映射好的灰度级赋给原图
I = double(I);
for i = 1 : R
for j = 1 : C
I(i, j) = Pixel_probability(1, I(i, j) + 1);
end
end
zy = uint8(I);
end
推荐阅读
-
python数字图像处理实现直方图与均衡化
-
Python cv2 图像自适应灰度直方图均衡化处理方法
-
Matlab实现图像灰度图,绘制直方图,直方图均衡化
-
图像处理之直方图均衡化拉伸
-
【数字图像处理实验】RGB与HSI互转、灰度直方图绘制、直方图均衡化、直方图规定化的MATLAB实现与Python实现
-
Python数字图像处理基础直方图详解
-
数字图像处理|Matlab-频域增强实验-彩色图像的频域滤波器-用高斯低通滤波器对彩色图像进行滤波操作
-
数字图像处理|Matlab-空域增强实验-彩色图像的去噪
-
数字图像处理|Matlab-频域增强实验-彩色图像的频域滤波器-自行选择一种频域的高通滤波器对彩色图像进行滤波操作
-
数字图像处理|Matlab-空域增强实验-彩色图像的直方图均衡化