步骤:

统计原图像素每个像素的个数

统计原图像<每个灰度级的像素的累积个数

家里灰度级得映射规则

将原图每个像素点的灰度映射到新图

代码:

  1. clear all
  2. I=imread('1.jpg');                 %读入JPG彩色图像文件
  3. imshow(I)                                  %显示出来
  4. title('输入的彩色JPG图像')
  5. I_gray = rgb2gray(I); %灰度化后的数据存入数组
  6. imwrite(I_gray,'1_gray.bmp'); %保存灰度图像
  7. figure,imshow(I_gray);
  8. title('灰度图')
  9. [height,width]=size(I_gray);  %测量图像尺寸参数
  10. p=zeros(1,256);                            %预创建存放灰度出现概率的向量
  11. for i=1:height
  12. for j=1:width
  13. p(I_gray(i,j) + 1) = p(I_gray(i,j) + 1)  + 1;
  14. end
  15. end
  16. s=zeros(1,256);
  17. s(1)=p(1);
  18. for i=2:256
  19. s(i)=p(i) + s(i-1); %统计图像中<每个灰度级像素的累积个数,s(i):0,1,```,i-1
  20. end
  21. for i=1:256
  22. s(i) = s(i)*256/(width*height); %求灰度映射函数
  23. if s(i) > 256
  24. s(i) = 256;
  25. end
  26. end
  27. %图像均衡化
  28. I_equal = I;
  29. for i=1:height
  30. for j=1:width
  31. I_equal(i,j) = s( I(i,j) + 1);
  32. end
  33. end
  34. figure,imshow(I_equal)                           %显示均衡化后的图像
  35. title('均衡化后图像')
  36. imwrite(I_equal,'1_equal.bmp');

实现结果如下:

原图                                                                    
  灰度图                                                                   
均衡化后

亲们,是这样么?!是这样么?!!肿么会是这样的呢~~~~~~~

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~是不是错了?彩色图像的均值化到底肿么弄涅~~

对于灰度图的均衡化,

参考:http://blog.csdn.net/xiajun07061225/article/details/6910129

  1. %直方图均衡化
  2. clear;
  3. I = imread('mm_gaussian_gray.bmp');
  4. [height,width] = size(I);
  5. figure
  6. subplot(221)
  7. imshow(I)%显示原始图像
  8. subplot(222)
  9. imhist(I)%显示原始图像直方图
  10. %进行像素灰度统计;
  11. s = zeros(1,256);%统计各灰度数目,共256个灰度级
  12. for i = 1:height
  13. for j = 1: width
  14. s(I(i,j) + 1) = s(I(i,j) + 1) + 1;%对应灰度值像素点数量增加一
  15. end
  16. end
  17. %计算灰度分布密度
  18. p = zeros(1,256);
  19. for i = 1:256
  20. p(i) = s(i) / (height * width * 1.0);
  21. end
  22. %计算累计直方图分布
  23. c = zeros(1,256);
  24. c(1) = p(1);
  25. for i = 2:256
  26. c(i) = c(i - 1) + p(i);
  27. end
  28. %累计分布取整,将其数值归一化为1~256
  29. c = uint8(255 .* c + 0.5);
  30. %对图像进行均衡化
  31. for i = 1:height
  32. for j = 1: width
  33. I(i,j) = c(I(i,j)+1);
  34. end
  35. end
  36. subplot(223)
  37. imshow(I)%显示均衡化后的图像
  38. subplot(224)
  39. imhist(I)%显显示均衡化后的图像的直方图

参考  http://blog.csdn.net/xiajun07061225/article/details/6910129

matlab 直方图均衡化(含rgb)的更多相关文章

  1. matlab 直方图均衡化

    原理: 直方图均衡化首先是一种灰度级变换的方法: 原来的灰度范围[r0,rk]变换到[s0,sk]变换函数为:s=T(r); 为便于实现,可以用查找表(look-up table)的方式存储,即:原始 ...

  2. 彩色图像的直方图均衡化matlab代码

    彩色图像的直方图均衡化 - YangYudong2014的专栏 - CSDN博客 http://blog.csdn.net/yangyudong2014/article/details/4051503 ...

  3. 直方图均衡化与Matlab代码实现

    昨天说了,今天要好好的来解释说明一下直方图均衡化.并且通过不调用histeq函数来实现直方图的均衡化. 一.直方图均衡化概述 直方图均衡化(Histogram Equalization) 又称直方图平 ...

  4. 图像处理 Matlab实现线性点运算、非线性点运算、点运算与直方图、直方图均衡化

    今天,我们学习了直方图.于是乎,回来我就用matlab代码实现一下.昨天受到道路检测老师课上一个内容的影响(对于道路裂缝的检测,我突发奇想,如果对于道路图像进行操作,是否能够让裂缝与道路分离,使得图像 ...

  5. Matlab实现直方图均衡化

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

  6. 直方图均衡化与直方图规定化的MATLAB实现

    目录 1.直方图均衡化 2.直方图规定化 @ 1.直方图均衡化 对图像进行非线性拉伸,重新分配图像像元值,使一定灰度范围内像元值的数量大致相等就是直方图的均衡化.原来直方图中间的峰顶部分对比度得到增强 ...

  7. MATLAB - 练习程序,直方图均衡化

    直方图均衡化的作用是图像增强. 有两个问题比较难懂,一是为什么要选用累积分布函数,二是为什么使用累积分布函数处理后像素值会均匀分布. 第一个问题.均衡化过程中,必须要保证两个条件:①像素无论怎么映射, ...

  8. 对比度受限的自适应直方图均衡化(CLAHE)

    直方图均衡化(HE)是一种很常用的直方图类方法,基本思想是通过图像的灰度分布直方图确定一条映射曲线,用来对图像进行灰度变换,以达到提高图像 对比度的目的.该映射曲线其实就是图像的累计分布直方图(CDF ...

  9. 数学之路-python计算实战(14)-机器视觉-图像增强(直方图均衡化)

    我们来看一个灰度图像,让表示灰度出现的次数,这样图像中灰度为 的像素的出现概率是  是图像中全部的灰度数, 是图像中全部的像素数,  实际上是图像的直方图,归一化到 . 把  作为相应于  的累计概率 ...

随机推荐

  1. [异常笔记]启动DFS报错:Cannot find configuration directory: /etc/hadoop

    [hadoop@master ~]$ start-dfs.sh Incorrect configuration: namenode address dfs.namenode.servicerpc-ad ...

  2. 简单的HTTP协议

    HTTP 协议和 TCP/IP 协议族内的其他众多的协议相同,用于客户端和服务器之间的通信. 请求访问文本或图像等资源的一端称为客户端,提供资源响应的一端称为服务器端. 在两台计算机之间使用 HTTP ...

  3. Vuex的第一次接触

    前言:最近在做Vue实现去哪网,想要实现在城市列表页面,点击某个城市的时候,主页的头部的城市会随着改变,就是首页和城市页面有共用的数据要分享,这里使用Vuex 1. Vuex是什么? 是Vue官方推荐 ...

  4. Java : Spring基础 AOP

    简单的JDK动态代理例子(JDK动态代理是用了接口实现的方式)(ICar是接口, GoogleCar是被代理对象, MyCC是处理方法的类): public class TestCar { publi ...

  5. python 查找元素 获取元素信息 元素交互操作 执行JavaScript

    from selenium import webdriver browser = webdriver.Firefox() browser.get("https://tieba.baidu.c ...

  6. win10安装kali组双系统

    一.镜像下载: 根据需求下载自己需要的版本 从官网下载kali 2018.2 的安装包:https://www.kali.org/downloads/ 二.烧录: 这里推荐用 win32 disk i ...

  7. 使用 Linux 下的的logrotate进行日志的切割

    实际生产中,使用一个log文件来记录所有信息的话,一方面,时间过久,就会占用很大的空间:另一方面,就是一个文件记录对于后期日志的查看非常不利.为了解决查看了一下资料,发现linux里面有一个logro ...

  8. Bioinfomatics dataset

    ##Genomic sequence variation ###1000 Genomes Projecthttp://www.1000genomes.org/Data collection and a ...

  9. BZOJ1432_Function_KEY

    题目传送门 找规律. 画一个像这样的图: 不同颜色为不同层,因为函数图像可对称,所以只考虑K<=N/2的情况. 最小为min(K,N-K+1)*2. N=1时特殊考虑,答案为1. code: # ...

  10. 北京Uber优步司机奖励政策(9月28日~10月4日)

    用户组:优步北京人民优步A组(适用于9月28日-10月4日) 滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不 ...