您的位置:首页 > 编程语言 > MATLAB

求图像的直方图这一大类

2016-04-06 22:33 295 查看
直方图属于图像的统计信息,是许多数字图像处理的基础。要理解好两幅图像的联合直方图,首先要沿着

直方图-归一化直方图-联合直方图-归一化联合直方图  学习,下面就简单介绍一下直方图。

直方图

g=imhist(f,b),b为直方图统计栈个数,默认256

归一化直方图

p=imhist(f,b)/numel(f);  numel用来求数组f中的个数,也就是图像的元素个数。

好吧,字有点多,就直接重点介绍联合直方图了,以后再补全。

matlab代码:

image = imread('hedgebw.pgm');

imageA = image;

imageB = image;

[row, col] = size(image);

grayscale = 256;

jointHistogram = zeros(grayscale, grayscale);

for y = 1:row

    for x = 1:col

        jointHistogram(imageB(y, x) + 1, imageA(y, x) + 1) = ...

            jointHistogram(imageB(y, x) + 1, imageA(y, x) + 1) + 1;

    end

end

figure, imshow(mat2gray(jointHistogram)); title('联合概率分布');

 
对两幅完全相同的图像,它们的联合直方图类似于下图:



代码转自:http://blog.csdn.net/wu_xiangwei/article/details/5691212

利用直方图可以对图像增强

直方图均衡化,对图像增强,拉伸图像的灰度级数动态范围。

g=histeq(f,nlev),nlev是灰度级数,默认64,最好改成256.

直方图规定化(匹配)

g=histeq(f,hspec),hspec为特定的直方图(某个特定值的行向量)

自适应直方图均衡,前面的两种方法都是对全部图像处理,自适应方法对图像的小区域进行处理,可以对局部进行增强,但又避免放大噪声。

q=adapthisteq(f,param1,vall,param2,vall....),param/vall参看help列表。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  matlab 图像处理 医疗