MATLAB图像处理_YUV与RGB颜色空间互转

RGB颜色空间

关于RGB颜色空间,相信做图像处理的人基本都比较熟悉,还是说一下R、G、B三个分量,每个分量各占8位即一个字节,三个分量总共是3个字节,即24bit,三个分量可以组合出不同的颜色,即2^24 种。

所以可以表示出的颜色数远远超过了俺们人类可以识别的范围。每个RGB分量其实都是表示成亮度,当三个相同时,就退化成我们所说的灰度图了,如三个分量都是0,此时就是黑色,三个分量都是255(8位可以表示的最大值),此时就是白色,下面一张图可以更形象的描述:

YUV颜色空间

YUV三个分量Y表示(亮度), U 、V代表色度;

关于YUV的解释看下面一篇文章中的分析,本人不再赘述:

YUV格式详解

代码如下:

% BY SCOTT
% RGB2YUV
% Y = 0.299R + 0.587G + 0.114B 
% U = -0.147R - 0.289G + 0.436B 
% V = 0.615R - 0.515G - 0.100B  
%
% YUV2RGB
% R = Y + 1.14V 
% G = Y - 0.39U - 0.58V 
% B = Y + 2.03U

clear all;
clc;
RGB = imread('test.jpg');
imshow(RGB);
RGB = mat2gray(RGB);
R = RGB(:,:,1);
G = RGB(:,:,2);
B = RGB(:,:,3);
x = size(RGB,1);
y = size(RGB,2);

% RGB2YUV
Y = 0.299*R + 0.587*G + 0.114*B;
U = -0.147*R- 0.289*G + 0.436*B;
V = 0.615*R - 0.515*G - 0.100*B;
YUV = cat(3, Y, U, V);
figure; imshow(YUV);

% YUV2RGB
RGB1 = zeros(size(RGB));
RGB1(:,:,1) = Y + 1.14 * V;
RGB1(:,:,2) = Y - 0.39 * U - 0.58 * V;
RGB1(:,:,3) = Y + 2.03 * U;
figure; imshow(RGB1)

% After YUV to RGB, The Image should same with original image.

运行结果分别如下所示:

转换前RGB空间

转换后YUV空间

还原成RGB

时间: 2024-11-02 15:37:06

MATLAB图像处理_YUV与RGB颜色空间互转的相关文章

MATLAB图像处理_HSV与RGB颜色空间互转

废话不多说,没什么技术含量,因为下面的代码是matlab中自带的转换函数.在这里贴出来只是为了方便以后复习.研究其转换的算法: HSV空间:分别是H(色调)--S(饱和度)--V(亮度) 与HSI颜色空间类似:分别是H(色调)--S(饱和度)--I(强度) 注意: 强度和亮度其实是一个概念. 饱和度代表的是渗入白光的数量级,白光越多,饱和度越小,白光越少,饱和度越大,表示颜色的纯度更大. 下面是代码: rgb2hsv.m function [h,s,v] = rgb2hsv(r,g,b) %RG

paper 74:MATLAB图像处理_HSV与RGB颜色空间互转

HSV空间:分别是H(色调)——S(饱和度)——V(亮度) 与HSI颜色空间类似:分别是H(色调)——S(饱和度)——I(强度) 注意: 强度和亮度差不多是一个概念. 饱和度代表的是渗入白光的数量级,白光越多,饱和度越小,白光越少,饱和度越大,表示颜色的纯度更大. 下面是代码: rgb2hsv.m function [h,s,v] = rgb2hsv(r,g,b) %RGB2HSV Convert red-green-blue colors to hue-saturation-value. %

学习笔记(2)---Matlab 图像处理相关函数命令大全

Matlab 图像处理相关函数命令大全 一.通用函数: colorbar  显示彩色条 语法:colorbar \ colorbar('vert') \ colorbar('horiz') \ colorbar(h) \ h=colorbar(...) \ colorbar(...,'peer',axes_handle) getimage 从坐标轴取得图像数据 语法:A=getimage(h) \ [x,y,A]=getimage(h) \ [...,A,flag]=getimage(h) \

matlab图像处理

matlab图像处理 转自:http://www.cnblogs.com/lovebay/p/5094146.html 1. 图像和图像数据 缺省情况下,MATLAB将图像中的数据存储为双精度类型(double),64位浮点数,所需存储量很大:MATLAB还支持另一种类型无符号整型(uint8),即图像矩阵中每个数据占用1个字节. 在使用MATLAB工具箱时,一定要注意函数所要求的参数类型.另外,uint8与double两种类型数据的值域不同,编程需注意值域转换. 从uint8到double的转

用C#调用Matlab图像处理自制QQ游戏2D桌球瞄准器

平时不怎么玩游戏,有时消遣就玩玩QQ里的2D桌球,但是玩的次数少,不能像骨灰级玩家一样百发百中,肿么办呢?于是某天突发奇想,决定自己也来做个“外挂”.说是外挂,其实只是一个瞄准器,毕竟外挂是修改别人的软件,有点违法的意思,况且自己还没有能力去那么做,所以自己还是弄个瞄准器,做做弊,过下小瘾,同时也提高一下自己的编程能力. 起初(也就是半年前),自己尝试做一个瞄准器的初始版本,用C#做,想法很简单: Step1.把鼠标移到洞口,获取鼠标位置: Step2.将鼠标放到要击打的球的圆心上,获取鼠标当前

MATLAB图像处理基础

MATLAB图像处理基础 2.2.1 图像文件格式及图像类型 1.MATLAB支持的几种图像文件格式: ⑴JPEG(Joint Photogyaphic Expeyts Group):一种称为联合图像专家组的图像压缩格式. ⑵BMP(Windows Bitmap):有1位.4位.8位.24位非压缩图像,8位RLE(Run length Encoded)的图像.文件内容包括文件头(一个BITMAP FILEHEADER数据结构).位图信息数据块(位图信息头BITMAP INFOHEADER和一个颜

MATLAB图像处理工具箱

下列表格中除了个别函数外,其余函数都是图像处理工具箱提供的关于图像处理的函数,现摘录到此以备查找. 表1 图像显示 函数名 功能说明 函数名 功能说明 colorbar 颜色条显示 montage 按矩形剪辑方式显示多帧图像 getimage 从坐标系中获取图像数据 immovie 从多帧索引图像中制作电影 image 建立显示图像 movie 播放电影 subimage 在同一图像窗口显示多个图像 trueszie 调整图像显示大小 imagesc 调整数据并显示图像 warp 显示图像为纹理

MATLAB图像处理——学习笔记

由于工作需要,开始研究一下MATLAB图像处理相关的知识,图像处理只是matlab应用领域中小小的一部分而已.以前只是听说过MATLAB很强大,但没有系统的学过,如今开始学时,发现matlab确实很不错.很高大上.操作起来很方便,特别是编写程序时,比C语言更简洁. 很多人都是大学里就学过matlab的,由于是半路出家,所以知识不是很全面,直接拿了一本冈萨雷斯的MATLAB版的书就开始看,下面做一些简单的小记录. 1. matlab命令基础: clc--清除窗口 clear--清除之前赋值过的变量

Atitit MATLAB 图像处理 经典书籍attilax总结

1.1. MATLAB数字图像处理1 1.2. <MATLAB实用教程(第二版)>((美)穆尔 著)[简介_书评_在线阅读] - 当当图书.html1 1.3. 数字图像处理(MATLAB版)(第二版)(本科教学版)2 1.1. MATLAB数字图像处理 第1章 图像处理与MATLAB2007a简介 第2章 图像的编码和解码 第3章 图像复原 第4章 图像处理的相关操作 第5章 图像频域变换 第6章 图像处理中的代数运算及几何变换 第7章 图像增强 第8章 图像分割与边缘检测 第9章 小波分析