图像处理学习笔记04:直方图处理与函数绘图

直方图相当于一个图像中所有像素个数的统计表,x轴为图像的灰度级,从0到L-1,y轴是对应灰度级的个数。

绘制直方图

核心函数是imhist函数,语法形式h=imhist(f,b),f表示输入的图像,b表示统计灰度级的个数,省略时默认为256.通过p=imhist(f,b)/numel(f)可以获得归一化的直方图,numel函数可以给出数组f中元素的个数。
例:使用imhist函数和stem函数绘制杆状直方图

clf;
clear;
f=imread('Fig0203(a).tif');
[counts,x]=imhist(f,25);%计算有25个区间的直方图
[m,n]=size(f);%计算图像大小
counts=counts/m/n;%计算归一化直方图各区间的值
stem(x,counts);绘制归一化直方图

例绘制条形图

f=imread('Fig0203(a).tif');
h=imhist(f,25);%直方图,灰度级分为25,垂直量
horz=linspace(0,255,25);%将灰度级分为25份,水平分量
bar(horz,h)
axis([0 255 0 450000])
set(gca,'xtick',0:50:255)
set(gca,'ytick',0:50000:450000)

axis函数语法axis([horzmin horzmax vertmin vertmax])设定水平轴与垂直轴的最小值与最大值。后两句中的gca代表获取当前轴,xtick和ytick设置显示水平轴和垂直轴标尺。

直方图均衡

就是将图像中的灰度级发布平均,每个灰度级区间的元素数量相近,就可以使原图像的细节更加清晰。
使用histeq函数实现,语法形式q=histeq(f,nlev)f为输入图像,nlev是输出图像设定的灰度级,默认值是64.若nlev与L相等,则histeq直接执行变换函数,若nelv小于L,则histeq试图分配灰度值区间,从而得到近似平坦的直方图。
例 直方图均衡

% clf;
% clear;
% clc;
f=imread('Fig0208(a).tif');
subplot(2,2,1);
imshow(f);
subplot(2,2,2);
imhist(f);
ylim('auto');
g=histeq(f,256);
subplot(2,2,3);
imshow(g);
subplot(2,2,4);
imhist(g);
ylim('auto');

变换函数

hnorm=imhist(f)./numel(f);
cdf=cumsum(hnorm);
x=linspace(0,1,256);
plot(x,cdf);
axis([0 1 0 1]);
set(gca,'xtick',0:.2:1);
set(gca,'ytick',0:.2:1);
xlabel('input','fontsize',9);
ylabel('output','fontsize',9);

在这里插入图片描述

直方图匹配

就是将原始图像的直方图经过处理之后,改变为与目标变换函数相近的图像。
用到了histeq函数,语法形式j=histeq(i,hgram),其中i为输入图像,hgram为目标直方图的图像,j为经过处理后的图像。
例 将i的图像分别匹配到i1和i2的直方图。

clf;clear;clc;
i=imread('pout.tif');
i1=imread('coins.png');
i2=imread('circuit.tif');

hgram1=imhist(i1);
hgram2=imhist(i2);

j1=histeq(i,hgram1);
j2=histeq(i,hgram2);

subplot(2,5,1);
imshow(i);
subplot(2,5,2);
imshow(i1);
subplot(2,5,3);
imshow(i2);
subplot(2,5,4);
imshow(j1);
subplot(2,5,5);
imshow(j2);

subplot(2,5,6);
imhist(i);
subplot(2,5,7);
imhist(i1);
subplot(2,5,8);
imhist(i2);
subplot(2,5,9);
imhist(j1);
subplot(2,5,10);
imhist(j2);

在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值