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

matlab灰度变换rgb2gray与直方图均衡化histeq

2015-06-06 16:31 274 查看
彩色图像是RGB,直接用rgb2gray。MATLAB并没有自带gray2rgb.

灰度图像是个NxM矩阵。N和M为坐标,存储的数值是灰度深浅强度。RGB为NxMx3的矩阵。N和M为坐标,附带的3是[红,绿,蓝]三色,数值各取0-1.0之间。转换上,如果灰度图像为1024x768大小,则要建立一个1024x768x3的矩阵。再在每一像素上添上颜色。例如,rgb_image(2,4,:)=[011]%(坐标(2,4)=浅蓝色)。

  rgb2gray原理:以R、G、B为轴建立空间直角坐标系,则RGB图的每个象素的颜色可以用该三维空间的一个点来表示,而Gray图的每个象素的颜色可以用直线R=G=B上的一个点来表示。于是rgb转gray图的本质就是寻找一个三维空间到一维空间的映射,最容易想到的就是射影(即过rgb空间的一个点向直线R=G=B做垂线)。matlab做法也是如此:rgb2grayconvertsRGBvaluestograyscalevaluesbyformingaweightedsumoftheR,G,
andBcomponents:

  0.2989*R+0.5870*G+0.1140*B

clc;
  clear;
  closeall;
  img=imread('41.jpg');
  j=rgb2gray(img);
  subplot(2,2,1);imshow(j);
  subplot(2,2,3);imhist(histeq(j));
  subplot(2,2,2);imhist(j);figure


结果:



  直方图均衡化histeq:可以增强图像的对比度

  



  低对比度的图像,给人的感觉是灰蒙蒙的,其直方图分布(概率密度),通常比较集中,高对比度的直方图,亮度分布在整个区域较为平均。如下图:

  



  其他资料:

  http://blog.chinaaet.com/detail/32550
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: