如何利用matlab程序编写求出直方图上最大值百分之x处的灰度值若已知最大值M,如何求0.5*M所对应的灰度值

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/01 15:05:06
如何利用matlab程序编写求出直方图上最大值百分之x处的灰度值若已知最大值M,如何求0.5*M所对应的灰度值

如何利用matlab程序编写求出直方图上最大值百分之x处的灰度值若已知最大值M,如何求0.5*M所对应的灰度值
如何利用matlab程序编写求出直方图上最大值百分之x处的灰度值
若已知最大值M,如何求0.5*M所对应的灰度值

如何利用matlab程序编写求出直方图上最大值百分之x处的灰度值若已知最大值M,如何求0.5*M所对应的灰度值

直方图统计的是灰度值出现的次数,可以不对图像做处理,直接显示直方图,这样它统计的就是灰度值的出现次数.例如:

x=imread('D:\ebook\lena.bmp');

   x=rgb2gray(x);

   imhist(x)

>> [conters,x1]=imhist(x);%%conters是各个灰度值出现的次数,x1是各个灰度值

>> [conters1,x11]=max(imhist(x))%%寻找最大值处

conters1 =

   762

x11 =

   153 

conters1里面存的是各个灰度级的频数,x11里面是各个灰度级,如果把conters1和x11当做数组的话,那么x11数组中的序号1对应的灰度级就是0,2对应的灰度级就是1,所以只要找到conters1数组中你需要的百分之几*最大值的序号,直接减1后就是其灰度值

conters=imhist(x);%%该形式直接返回各个灰度级的频数

>> [m,n]=find(conters==0.5*762)%%找到你需要的频数,762为上面求的最大值

m =

   107%%序号

n =

     1

所以其0.5*762处对应的灰度值就是107-1=106