当前位置:首页 > 代码 > 正文

直方图均衡化代码matlab(自适应直方图均衡化代码)

admin 发布:2022-12-19 23:03 162


今天给各位分享直方图均衡化代码matlab的知识,其中也会对自适应直方图均衡化代码进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

图像直方图均衡化

一. 直方图均衡化:

        直方图均衡化是使图像直方图变得平坦的操作。直方图均衡化能够有效地解决图像整体过暗、过亮的问题,增加图像的清晰度。

        具体流程如下所示。其中S是总的像素数,Zmax是像素的最大取值(8位灰度图像为255),h(i)为图像像素取值为 i 及 小于 i 的像素的总数。

二. python实现直方图均衡化操作

import cv2

import numpy as np

import matplotlib.pyplot as plt

# histogram equalization

def hist_equal(img, z_max=255):

        H, W = img.shape

        S = H * W  * 1.

        out = img.copy()

        sum_h = 0.

        for i in range(1, 255):

                ind = np.where(img == i)

                sum_h += len(img[ind])

                z_prime = z_max / S * sum_h

                out[ind] = z_prime

        out = out.astype(np.uint8)

        return out

# Read image

img = cv2.imread("../head_g_n.jpg",0).astype(np.float)

# histogram normalization

out = hist_equal(img)

# Display histogram

plt.hist(out.ravel(), bins=255, rwidth=0.8, range=(0, 255))

plt.show()

plt.savefig("out_his.png")

# Save result

cv2.imshow("result", out)

cv2.imwrite("out.jpg", out)

cv2.waitKey(0)

cv2.destroyAllWindows()

三. 实验结果:

        可以看到,直方图均衡化后的图像看起来比原来的图像更加清晰。对于图像亮度整体偏暗或者偏亮的图像,我们可以采用直方图均衡化的方法处理图像,使得它们看上去更加清晰。

四. matlab 实现图像直方图均衡化:

        可以参考一篇优秀的博文:        

五. 参考内容:

        

        

matlab做直方图均衡,下面的程序是局部直方图均衡,程序运行后的图像显示如下图,黑色部分灰度值均为1

数据类型问题,histeq函数,当你的图像是double型时,返回值是0或者1;当你的图像是uint8型时,返回值为0-255。

所以你编的代码里的:k=histeq(m);%对块图进行直方图均衡,m为double型,所以其k就是全1,那么x2中对应的位置也就是全1,最后显示转化成uint8显示肯定为黑色。

所以把k=histeq(m);改成k=histeq(uint8(m));即可。运行结果如图

matlab如何实现矩阵图像的直方图均衡化

基于matlab的直方图均衡化代码

2007-04-15 20:15

clear all

%一,图像的预处理,读入彩色图像将其灰度化

PS=imread('1.jpg'); %读入JPG彩色图像文件

imshow(PS) %显示出来

title('输入的彩色JPG图像')

imwrite(rgb2gray(PS),'PicSampleGray.bmp'); %将彩色图片灰度化并保存

PS=rgb2gray(PS); %灰度化后的数据存入数组

%二,绘制直方图

[m,n]=size(PS); %测量图像尺寸参数

GP=zeros(1,256); %预创建存放灰度出现概率的向量

for k=0:255

GP(k+1)=length(find(PS==k))/(m*n); %计算每级灰度出现的概率,将其存入GP中相应位置

end

figure,bar(0:255,GP,'g') %绘制直方图

title('原图像直方图')

xlabel('灰度值')

ylabel('出现概率')

%三,直方图均衡化

S1=zeros(1,256);

for i=1:256

for j=1:i

S1(i)=GP(j)+S1(i); %计算Sk

end

end

S2=round((S1*256)+0.5); %将Sk归到相近级的灰度

for i=1:256

GPeq(i)=sum(GP(find(S2==i))); %计算现有每个灰度级出现的概率

end

figure,bar(0:255,GPeq,'b') %显示均衡化后的直方图

title('均衡化后的直方图')

xlabel('灰度值')

ylabel('出现概率')

%四,图像均衡化

PA=PS;

for i=0:255

PA(find(PS==i))=S2(i+1); %将各个像素归一化后的灰度值赋给这个像素

end

figure,imshow(PA) %显示均衡化后的图像

title('均衡化后图像')

imwrite(PA,'PicEqual.bmp');

MATLAB直方图均衡化代码

%函数功能,画出图像的直方图,并对图像进行直方图均衡

%直接读图像abc.jpg,读到tuu中

%graydis是原始直方图各灰度级像素个数

%原始直方图graydispro,利用原始直方图计算原始累计直方图graydispro

%t[]计算和原始灰度对应的新的灰度t[],建立映射关系,t坐标代表原始的灰度,t[]代表对应原始坐标的新坐标

%new_graydis是统计新直方图各灰度级像素个数

%计算新的灰度直方图new_graydispro,利用新的直方图计算新的累计直方图new_graydispro

%计算直方图均衡后的新图new_tu

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

clear

all

close

all

tuu=imread('abc.jpg');

%读入图片

tu=rgb2gray(tuu);

%将彩色图片转换为灰度图

graydis=zeros(1,256);

%设置矩阵大小

graydispro=zeros(1,256);

new_graydis=zeros(1,256);

new_graydispro=zeros(1,256);

[h

w]=size(tu);

new_tu=zeros(h,w);

%计算原始直方图各灰度级像素个数graydis

for

x=1:h

for

y=1:w

graydis(1,tu(x,y))=graydis(1,tu(x,y))+1;

end

end

%计算原始直方图graydispro

graydispro=graydis./sum(graydis);

subplot(1,2,1);

plot(graydispro);

title('灰度直方图');

xlabel('灰度值');ylabel('像素的概率密度');

%计算原始累计直方图

for

i=2:256

graydispro(1,i)=graydispro(1,i)+graydispro(1,i-1);

end

%计算和原始灰度对应的新的灰度t[],建立映射关系

for

i=1:256

t(1,i)=floor(254*graydispro(1,i)+0.5);

end

%统计新直方图各灰度级像素个数new_graydis

for

i=1:256

new_graydis(1,t(1,i)+1)=new_graydis(1,t(1,i)+1)+graydis(1,i);

end

%计算新的灰度直方图new_graydispro

new_graydispro=new_graydis./sum(new_graydis);

subplot(1,2,2);

plot(new_graydispro);

title('均衡化后的灰度直方图');

xlabel('灰度值');ylabel('像素的概率密度');

%计算直方图均衡后的新图new_tu

for

x=1:h

for

y=1:w

new_tu(x,y)=t(1,tu(x,y));

end

end

figure,imshow(tu,[]);

title('原图');

figure,imshow(new_tu,[]);

title('直方图均衡化后的图');

关于直方图均衡化代码matlab和自适应直方图均衡化代码的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

版权说明:如非注明,本站文章均为 AH站长 原创,转载请注明出处和附带本文链接;

本文地址:http://ahzz.com.cn/post/29152.html


取消回复欢迎 发表评论:

分享到

温馨提示

下载成功了么?或者链接失效了?

联系我们反馈

立即下载