直方图均衡化算法,对给定图像进行均衡化,灰度级数分别为2、64、256;
主函数
%% 请大家完成直方图均衡化函数 myHisteq.m,然后将本主程序中的变量
%% filename设置‘bridge’,运行main_histeq.m,即可得到直方图均衡化后的结果
%%
clc;
clear;
close all;
%% 读取图片
filename = 'bridge'; %测试图像1
im = imread([filename, '.jpg']);
n_1 = 2;
n_2 = 64;
n_3 = 256;
% im = 2 * im - 55/255; % 提高对比度的图像
% im = 0.5 * im + 55/255; % 降低对比度的图像
% im = im + 120; % 增加亮度的图像
%% 将图像进行直方图均衡化
im_histeq_1 = myHisteq(im, n_1);
im_histeq_2 = myHisteq(im, n_2);
im_histeq_3 = myHisteq(im, n_3);
%% 将均衡化结果保存到当前目录下的result文件夹下
imwrite(im_histeq_1, sprintf('/%s_eq_%d.jpg', filename, n_1));
imwrite(im_histeq_2, sprintf('/%s_eq_%d.jpg', filename, n_2));
imwrite(im_histeq_3, sprintf('/%s_eq_%d.jpg', filename, n_3));
%% 显示结果(部分代码需补全)
figure(1);
subplot(421); imshow(im); title('原图'); axis on
subplot(422); imhist(im