zoukankan      html  css  js  c++  java
  • RGB想YCbCr空间的变换

    具体的基本原理参考下面的网址。

    http://ee.52ic.net/Article/ShowArticle.asp?ArticleID=61

    方法一:

    filePath = '1.jpg';

    I = imread(filePath);  %读取JPEG彩色图像

    %可以直接调用rgb2ycbcr函数进行空间变换

    YCBCR = rgb2ycbcr(I);

    方法二:

    filePath = '1.jpg';

    I = imread(filePath);  %读取JPEG彩色图像

    [m, n, dim]=size(I);

    %图像的RGB %matlab读入图像的数据是uint8,而matlab中数值一般采用double型(64位)存储和运算。

    %所以要先将图像转为double格式的才能运算,imshow必须是uint8等格式的才能显示

    img=im2double(I);        %双精度存储,亮度值范围是[0,1];

    R=img(:,:,1);

    G=img(:,:,2);

    B=img(:,:,3);

    %RGB2YCbCr

    Y=zeros(m,n);   

    Cb=zeros(m,n);   

    Cr=zeros(m,n);  

    YCbCr_1=zeros(m,n,3);

    matrix=[0.299 0.587 0.114; 0.5 -0.4187 -0.0813; -0.1687 -0.3313 0.5];

    for i=1:m  

       for j=1:n        

        tmp=matrix*[R(i,j) G(i,j) B(i,j)]';        

        Y(i,j)=tmp(1);        

        Cb(i,j)=tmp(2)+128;        

        Cr(i,j)=tmp(3)+128;   

      end

    end

    YCbCr_1(:,:,1) = Y;

    YCbCr_1(:,:,2) = Cb;

    YCbCr_1(:,:,3) = Cr;

    YCbCr_11 = im2uint8(YCbCr_1); %无符号整型存储,亮度值范围[0,255]

    imshow(YCbCr_11);

  • 相关阅读:
    面向对象分析与设计
    数据摘要pandas
    面向对象(简介)
    SQL触发器、事物
    SQL——查询考试
    SQL存储过程、视图
    SQL变量、运算符、分支、循环语句
    SQL连接查询
    SQL主外键和子查询
    SQL各种语句、函数
  • 原文地址:https://www.cnblogs.com/ytfei1990/p/3339507.html
Copyright © 2011-2022 走看看