直方图均衡化Matlab实现(非histeq内置函数)

简介: 直方图均衡化常用于图像增强,可以提高图像对比度,扩展图像动态范围。
close all
clear all
clc
srcImage = imread('lena.jpg');
srcImage = rgb2gray(srcImage);
grayImage = srcImage;
[height,width] = size(grayImage);
% 进行像素灰度统计
NumPixel = zeros(1,256);
for i = 1:height
    for j = 1:width
        NumPixel(grayImage(i,j)+1) = NumPixel(grayImage(i,j)+1)+1;
    end
end
% 计算灰度分布密度
ProbPixel = zeros(1,256);
for i = 1:256
    % 像素总数:512*512
    ProbPixel(i) = NumPixel(i) / (height * width * 1.0);
end
% 计算累计直方图
CumuPixel = zeros(1,256);
for i = 1:256
    if i == 1
        CumuPixel(i) = ProbPixel(i);
    else
        CumuPixel(i) = CumuPixel(i-1)+ProbPixel(i); 
    end
end
% 累计分布取整
CumuPixel2 = uint8(255 .* CumuPixel + 0.5);
% 对灰度值进行映射(均衡化)
for i = 1:height
    for j = 1:width
       grayImage(i,j) = CumuPixel2(grayImage(i,j)+1);
    end
end
figure();
subplot(2,2,1),imshow(srcImage);
subplot(2,2,2),imshow(grayImage);
subplot(2,2,3),imhist(srcImage);
subplot(2,2,4),imhist(grayImage);

效果图:

20210622112057597.png

目录
相关文章
|
6天前
|
索引
matlab--------矩阵重构,重新排列的相关函数说明
matlab--------矩阵重构,重新排列的相关函数说明
59 0
matlab--------矩阵重构,重新排列的相关函数说明
|
6天前
|
数据安全/隐私保护
地震波功率谱密度函数、功率谱密度曲线,反应谱转功率谱,matlab代码
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
|
6天前
|
Serverless
基于Logistic函数的负荷需求响应(matlab代码)
基于Logistic函数的负荷需求响应(matlab代码)
|
6天前
|
调度
知识分享|分段函数线性化及matlab测试
知识分享|分段函数线性化及matlab测试
|
6天前
雷达模糊函数及MATLAB仿真(三)
雷达模糊函数及MATLAB仿真
26 0
|
6天前
雷达模糊函数及MATLAB仿真(二)
雷达模糊函数及MATLAB仿真
40 0
|
6天前
雷达模糊函数及MATLAB仿真(一)
雷达模糊函数及MATLAB仿真
35 0
|
6天前
|
计算机视觉
数字图像处理笔记(一)Matlab实现直方图均衡化
数字图像处理笔记(一)Matlab实现直方图均衡化

热门文章

最新文章