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

来源:互联网 发布:淘宝pc链接转无线链接 编辑:程序博客网 时间:2024/05/22 17:01

     彩色图像是RGB,直接用rgb2gray。MATLAB 并没有自带gray2rgb.

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

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

  0.2989 * R + 0.5870 * G + 0.1140 * B

clc;
 
  clear;
 
  close all;
 
  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

0 0
原创粉丝点击