如何利用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

温馨提示:内容为网友见解,仅供参考
无其他回答

如何利用matlab程序编写求出直方图上最大值百分之x处的灰度值
x11 = 153 conters1里面存的是各个灰度级的频数,x11里面是各个灰度级,如果把conters1和x11当做数组的话,那么x11数组中的序号1对应的灰度级就是0,2对应的灰度级就是1,所以只要找到conters1数组中你需要的百分之几*最大值的序号,直接减1后就是其灰度值 conters=imhist(x);%%该形式直接返回各个...

求Matlab统计灰度值的代码
x11 = 153 conters1里面存的是各个灰度级的频数,x11里面是各个灰度级,如果把conters1和x11当做数组的话,那么x11数组中的序号1对应的灰度级就是0,2对应的灰度级就是1,所以只要找到conters1数组中你需要的百分之几*最大值的序号,直接减1后就是其灰度值 conters=imhist(x);%%该形式直接返回各个...

如何用Matlab画出灰度直方图?
r(10)=r(11)=r(12)=r(13)=r(14)=r(15)=1 将累积分布进行量化(量化时需要用到原始图像的灰度级数,这也是为什么前面需要说明的原因),量化后的灰度级用rq(i)表示,量化公式为rq(i)=ROUND(r(i)*15),(说明:量化公式中的15等于原始图像灰度级数减1),可得:rq(0)=ROUND(...

如何让用matlab求出一幅图像的平均灰度?请给出具体程序,谢谢~
ave=sum(sum(I))\/(M*N); %ave为平均灰度。也可以直接用下面的一条语句:ave=mean(mean(I));

matlab 如何计算一幅图像中某一灰度值的像素个数
1、第一步,打开需要处理的图像,然后编写以下代码,见下图红框标注处,转到下面的步骤。2、第二步,执行完上面的操作之后,可以看到图像均衡的图片,见下图,转到下面的步骤。3、第三步,执行完上面的操作之后,画出平衡图片的直方图,在平衡前后对图片进行比较,见下图。这样,就解决了这个问题了。

matlab 怎么看一个灰度直方图
img=imread('myImg.jpg');my_hist=imhist(img);直方图的结果是一个向量,每一位对应一个统计数值,相应灰度值的像素个数直接访问就好了 nb_pixels=my_hist(x+1); % 比如 灰度值为x的像素个数 (注意要加1,因为像素值从0开始)。

MATLAB直方图的最大值和最小值
a是矩阵max(a)返回各列的最大值;min(max(a))返回这些最大值中的最小值。另外,max(a,2)返回各行的最大值。同理可以推出一系列相关的大小值。

matlab绘制直方图?
A(:)是将A写成一列(否则hist会分别对每一列进行统计)0:255就是分组。hist会将其分成256个组进行统计。分别为(-inf,0.5](0.5,1.5](1.5,2.5]...(253.5,254.5](254.5,inf)因为灰度图像是0-255的整数,因此这样正好统计出各灰度值的个数。n=hist(A(:),0:255)可以返回每个灰度...

matlab如何实现直方图规定化
程序在这边,就不贴实验图片了 clear all close all f= imread('2.jpg');I=double(f); [m,n]=size(I);H=zeros(1,256);for i=1:m for j=1:n H(I(i,j)+1)=H(I(i,j)+1)+1; %求各灰度级的像素数 end end s=zeros(1,256);t=zeros(1,256);for i=1:256 s(i...

matlab 如何计算一幅图像中某一灰度值的像素个数
1、第一步,打开需要处理的图像,然后编写以下代码,见下图红框标注处,转到下面的步骤。2、第二步,执行完上面的操作之后,可以看到图像均衡的图片,见下图,转到下面的步骤。3、第三步,执行完上面的操作之后,画出平衡图片的直方图,在平衡前后对图片进行比较,见下图。这样,就解决了这个问题了。

相似回答