图像的灰度直方图(H是图像a.bmp的数据矩阵)

imhist(H);%显示a的直方图

histeq(H); %将图像a进行直方图均衡化

adapthisteq(H); %将图像a进行直方图均衡化

imhist函数只能处理二维数据,因此处理RGB图像,需先转化成灰度图像,显示灰度直方图。

例1:显示图像灰度直方图并进行直方图均衡化。

H=rgb2gray(imread('peppers.png'));
subplot(3,2,1);
imshow(H);
title('原图');
subplot(3,2,2);
imhist(H);
title('原图直方图');
subplot(3,2,3);
H1=adapthisteq(H);
imshow(H1);
title('adapthisteq均衡后图');
subplot(3,2,4);
imhist(H1);
title('adapthisteq均衡后直方图');
subplot(3,2,5);
H2=histeq(H);
imshow(H2);
title('histeq均衡后图');
subplot(3,2,6);
imhist(H1);
title('histeq均衡后直方图');

例2: 自己设计程序显示直方图,并实现直方图均衡化。

直方图均衡化是直方图修正技术的一种。一幅均匀量化的自然图像的灰度直方图通常在低灰度区域的频率较大,这样的图像较暗,区域中的细节常常看不清楚。

直方图均衡化可使得图像的灰度间距拉大或者使灰度分布均匀,从而增加了反差,使图像细节清晰,达到图像增强的目的。

x=rgb2gray(imread('peppers.png'));
[m,n]=size(x);
p=zeros(1,256);
for i=0:255
p(i+1)=length(find(x==i))/(m*n);
end
subplot(2,2,1);
bar(0:255,p,'b');
title('原图直方图');
subplot(2,2,2);
imshow(x);
title('原图'); s=zeros(1,256);
for i=1:256
for j=1:i
s(i)=p(j)+s(i);
end
end a=round(s*255);
for i=0:255
GPeq(i+1)=sum(p(find(a==i)));
end
subplot(2,2,3);
bar(0:255,GPeq,'b')
title('均衡化后的直方图');
b=x;
for i=0:255
b(find(x==i))=a(i+1);
end
subplot(2,2,4);
imshow(b)
title('均衡化后图像');

Matlab图像直方图相关函数的更多相关文章

  1. 【matlab】图像直方图

    使用imhist函数(要先用rgb2gray转化为灰度图像) 利用matlab计算图像直方图函数为imhist() 具体用法: imhist( i );直接显示图像i的灰度直方图: imhist(i, ...

  2. OpenCV成长之路(5):图像直方图的应用

    正如第4篇文章所说的图像直方图在特征提取方面有着很重要的作用,本文将举两个实际工程中非常实用的例子来说明图像直方图的应用. 一.直方图的反向映射. 我们以人脸检测举例,在人脸检测中,我们第一步往往需要 ...

  3. OpenCV成长之路:图像直方图的应用

    OpenCV成长之路:图像直方图的应用 2014-04-11 13:57:03 标签:opencv 图像 直方图 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否 ...

  4. Matlab实现直方图均衡化

    G=imread('aini555.jpg'); I=rgb2gray(G); J=histeq(I); %直方图均衡化,这一个函数就可以做到均衡化的效果 figure, subplot(),imsh ...

  5. matlab图像处理程序大集合

    1.图像反转 MATLAB程序实现如下:I=imread('xian.bmp');J=double(I);J=-J+(256-1);                 %图像反转线性变换H=uint8( ...

  6. OpenCV成长之路(4):图像直方图

    一.图像直方图的概念 图像直方图是反映一个图像像素分布的统计表,其实横坐标代表了图像像素的种类,可以是灰度的,也可以是彩色的.纵坐标代表了每一种颜色值在图像中的像素总数或者占所有像素个数的百分比. 图 ...

  7. matlab图像类型转换以及uint8、double、im2double、im2uint8和mat2gray等说明

    转自:http://blog.csdn.net/fx677588/article/details/53301740 1. matlab图像保存说明 matlab中读取图片后保存的数据是uint8类型( ...

  8. Matlab图像彩色转灰色

    Matlab图像彩色转灰色 时间:2014年5月7日星期三 网上找的程序.实现图像彩色转灰色: I1=imread('C:\Users\Yano\Desktop\matlab\test1\4.jpg' ...

  9. OpenCV成长之路:图像直方图

    http://ronny.blog.51cto.com/8801997/1394115 2014-04-11 13:47:27 标签:opencv 直方图 统计表 原创作品,允许转载,转载时请务必以超 ...

随机推荐

  1. golang之pkg(包)

    一.概述 Golang拥有超过100个标准包(可用go list std |wc -l查看) 任何包系统设计的目的都是简化大型程序的设计和维护工作,通过将一组相关的特性放进一个独立的模块以便于理解和更 ...

  2. mysql binlog解析概要

    1,dump协议: 根据数据库的ip+port创建socket,如果创建成功,说明链接建立成功,接下来是使用dump协议订阅binlog 链接建立成功之后,服务端会主动向客户端发送如下问候信息gree ...

  3. Java日志管理

    首页 资讯 精华 论坛 问答 博客 专栏 群组 更多 ▼ 您还未登录 ! 登录 注册 JavaCrazyer的ItEye(codewu.com)技术博客   博客 微博 相册 收藏 留言 关于我   ...

  4. sql语句批量处理Batch

    package Statement批量处理; import java.sql.Connection; import java.sql.DriverManager; import java.sql.St ...

  5. 简单的javascript实例一(时钟特效)

    方便以后copy 时钟特效 <html> <head> <meta http-equiv="Content-Type" content="t ...

  6. iOS开发之设置界面的抽取

    几乎每款app都会有一个设置的界面!!! 那么我们的设置界面到底要怎么写才能最方便使用呢?下面我就来说说我的想法. 1.观察原型图 2.找出相同的东西,目的是抽出一个基类模块,只要我写好了这个控制器, ...

  7. 用Struts2标签实现Map的迭代

    最近在做一个论坛,论坛通常分为几个主版块,每一个主版块下面又有几个子版块. 想不出更好的展现方式,最终采用了如下的方法来实现: 用一个Map,HashMap或者Treemap承载之.一个子版块名字对应 ...

  8. django是怎么处理请求的

    本文摘自 http://djangobook.py3k.cn/2.0/chapter03/ 我们在Django建立helloworld自定义页面中新建了站点,并能接受URL请求展示我们的页面,那Dja ...

  9. javascript 数据结构和算法读书笔记 > 第四章 栈

    1. 对栈的操作 栈是一种特殊的列表,栈中的元素只能通过列表的一端进行访问,即栈顶.类似于累起一摞的盘子,只能最后被放在上面的,最先能被访问到. 就是我们所说的后入先出(LIFO). 对栈主要有入栈p ...

  10. phpcms 调用全站最新发布数据

    phpcms模板标签没有调用全站最新发布的数据 所以参考phpcms本身自带的lists方法写了一个Countlists调用全站数据 /** * 全站最热 * @param $data */ publ ...