matlab实现将彩色图像转换成灰色图像的方法
2017-02-16 14:34
776 查看
本文将@wsywl与@wesleyluo两位的博客经过自己的想法重新试了一下,效果不错。
显示结果如下
灰度图是指只含亮度信息,不含色彩信息的图象,就象我们平时看到的黑白照片:亮度由暗到明,变化是连续的。因此,要表示灰度图,就需要把亮度值进行 量化。通常划分成0到255共256个级别,其中0最暗(全黑),255最亮(全白)。在表示颜色的方法中,除了RGB外,还有一种叫YUV的表示方法, 应用也很多。电视信号中用的就是一种类似于YUV的颜色表示方法。在这种表示方法中,Y分量的物理含义就是亮度,Y分量包含了灰度图的所有信息,只用Y分 量就能完全能够表示出一幅灰度图来。
从 RGB 到 YUV 空间的 Y 转换公式为:
Y = 0.299R+0.587G+0.114B
这是依据的原理
与图二原始灰度相比,可以看出图四恢复出的图像效果更好一些。## matlab实现将彩色图像转换成灰色图像的方法 ##
MyYuanLaiPic = imread('lena.jpg');%读取RGB格式的图像 MyFirstGrayPic = rgb2gray(MyYuanLaiPic);%用已有的函数进行RGB到灰度图像的转换 [rows , cols , colors] = size(MyYuanLaiPic);%得到原来图像的矩阵的参数 MidGrayPic = zeros(rows , cols);%用得到的参数创建一个全零的矩阵,这个矩阵用来存储用下面的方法产生的灰度图像 OldGrayPic = zeros(rows , cols); OldGrayPic = uint8(OldGrayPic); MidGrayPic = uint8(MidGrayPic);%将创建的全零矩阵转化为uint8格式,因为用上面的语句创建之后图像是double型的 %uint8是指0~2^8-1 = 255数据类型 for i = 1:rows for j = 1:cols sum = 0; sumold = 0; for k = 1:colors sumold = sumold + MyYuanLaiPic(i , j , k) / 3;%进行转化的关键公式,sum每次都因为后面的数字而不能超过255 switch k case{1} m = 0.299; case{2} m = 0.587; case{3} m = 0.114; end sum = sum + MyYuanLaiPic(i , j , k)*m; end MidGrayPic(i , j) = sum; OldGrayPic(i , j) = sumold; end end %imwrite(MidGrayPic , 'E:/image/matlab/DarkMouseGray.png' , 'png'); imwrite(MidGrayPic , 'DarkMouseGray.png' , 'png'); imwrite(OldGrayPic , 'OldGray.png' , 'png'); %显示原来的RGB图像 figure(1); imshow(MyYuanLaiPic); %显示经过系统函数运算过的灰度图像 figure(2); imshow(MyFirstGrayPic); %显示经过其他人设计的函数运算过的灰度图像 figure(3); imshow(OldGrayPic); %显示自制的转化之后的灰度图像 figure(4); imshow(MidGrayPic);
显示结果如下
灰度图是指只含亮度信息,不含色彩信息的图象,就象我们平时看到的黑白照片:亮度由暗到明,变化是连续的。因此,要表示灰度图,就需要把亮度值进行 量化。通常划分成0到255共256个级别,其中0最暗(全黑),255最亮(全白)。在表示颜色的方法中,除了RGB外,还有一种叫YUV的表示方法, 应用也很多。电视信号中用的就是一种类似于YUV的颜色表示方法。在这种表示方法中,Y分量的物理含义就是亮度,Y分量包含了灰度图的所有信息,只用Y分 量就能完全能够表示出一幅灰度图来。
从 RGB 到 YUV 空间的 Y 转换公式为:
Y = 0.299R+0.587G+0.114B
这是依据的原理
与图二原始灰度相比,可以看出图四恢复出的图像效果更好一些。## matlab实现将彩色图像转换成灰色图像的方法 ##
相关文章推荐
- 24位真彩色图像转换为16位高彩色图像的实现方法及效果改进
- 24位真彩色图像转换为16位高彩色图像的实现方法及效果改进
- (实验一) --- 彩色图像变换成灰度图像---matlab实现
- 用verilog实现RGB名目图像到YCbCr或YUV名目的转换及其验证方法
- php实现将wav文件转换成图像文件并在页面中显示的方法
- 一种图像索引的查找表实现方法(VisualSFM点云数据存储基准从物方到像方的转换)
- matlab实现将彩色图像(R,G,B)色分量的直方图匹配,并计算其相关性
- RGB彩色图像与灰度图像转换 opencv实现 代码及分析
- php实现将wav文件转换成图像文件并在页面中显示的方法
- Ubuntu系统上实现转换图像、音频和视频格式的方法
- MATLAB实现将图像转换为素描(简笔画)风格
- C++ OpenCV 实现RGB彩色图像转化成灰度图像再转换成二值图像
- 本图片处理类功能非常之强大可以实现几乎所有WEB开发中对图像的处理功能都集成了,包括有缩放图像、切割图像、图像类型转换、彩色转黑白、文字水印、图片水印等功能
- 在vc中实现DIB图像镜像转换的两个方法
- 让网页图片变灰色将彩色图像变成灰度的三种方法
- opencv学习(一)实现将彩色图像转换成灰度图像和二值图像
- 【Matlab】将彩色图像转换为灰度图像
- matlab实现将彩色图像(R,G,B)色分量的直方图显示出
- VC编程实现灰度图像与彩色图像的相互转换
- 【C++】使用CImage类将彩色图像转换成8位灰色图像