Matlab实现基于直方图均衡化的图像灰度变换

Matlab实现基于直方图均衡化的图像灰度变换

效果展示(实验测试用图,侵删)
在这里插入图片描述
拔群有没有!!!

以下为实现流程

灰度统计函数
nums.m

%传参为图像灰度量化等级,图像矩阵;
%返回灰度频数,频率
function [times,frequ] = nums(n,Img)
times = zeros(1,n);
[Wide,High]=size(Img);

N = Wide*High;
%统计频数
for i = 1:Wide
    for j = 1:High
           times(Img(i,j)+1) = times(Img(i,j)+1)+1;
    end
end
%频率
frequ = times./N;
end

主函数 main.m

clc
ImgPath = 'test.png';

%上次写的彩图转化黑白图函数
Img = rgb2gray(imread(ImgPath));

[Wide,High] = size(Img);
N = Wide*High;

n = 256;
%得到原图的像素频数,频率
[times0,frequ0]= nums(n,Img);

%得到灰度累计直方图
add_frequ = zeros(1,n);
add_frequ(1) = frequ0(1);
for i = 2:n
    add_frequ(i) = add_frequ(i-1) + frequ0(i);
end

%绘制转换图
newphoto = zeros(Wide,High);

%像素转化函数f_x
f_x = add_frequ.*n;

for i = 1:Wide
    for j = 1:High
        newphoto(i,j) = f_x(Img(i,j)+1);
    end
end
newphoto = uint8(newphoto);

[times1,frequ1] = nums(n,newphoto);

%展示
figure(1)  
subplot(1,2,1)
imshow(Img)
subplot(1,2,2)
imshow(newphoto)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值