J=histeq(I,32)% 对图像 I 直方图均衡化,得到的 J 为新图像,它在0~255范围内有32个离散值
[counts,x]=imhist(J) % 按256等级绘制 J 的直方图,counts统计直方图各个bin中的值,x为各个bin的位置
Q=imread('girl.jpg')
figure
imshow(Q) % 显示图像Q
A=rgb2gray(Q) % 彩色图像Q转换为灰度图像A
figure
imhist(A)
M=histeq(A,counts)% 对A进行直方图规定化,规定的直方图为counts,即得到的图像M的直方图类似于counts所指定的, 一般来说得到的图像 J 和 M 是相同的
figure
imshow(M) % 显示图像M
figure
imhist(M) % 显示M的直方图
不同的数据会显示不同的直方图,以imhist为例,直方图及代码如下。
利用matlab计算图像直方图函数为imhist()
具体用法:
imhist(i)直接显示图像i的灰度直方图;
imhist(i,n)n为指定灰度级显示直方图;
[count,x]=imhist(i)获取直方图信息,count为每一级灰度像素个数,x为灰度级,x也可以在imhist(i,x)中指定,可以通过stem(x,count)画相应直方图;
代码应用:
i=imread('F:\Myfile\Matlab\Test_picture\0_1.jpg')
imshow(i)
figure
imhist(i)
figure
imhist(i,32)
figure
[count,x]=imhist(i,32)
stem(x,count)
用MATLAB的bar( )函数,可以画直方图。对于本例:
>>X=rand(1,10) %10个数据的随机向量
>>bar(X)
运行结果
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)