当前位置 博文首页 > 文章内容

    MATLAB RGB2YCbCr、YCbCr2RGB

    作者: 栏目:未分类 时间:2020-09-10 16:00:59

    本站于2023年9月4日。收到“大连君*****咨询有限公司”通知
    说我们IIS7站长博客,有一篇博文用了他们的图片。
    要求我们给他们一张图片6000元。要不然法院告我们

    为避免不必要的麻烦,IIS7站长博客,全站内容图片下架、并积极应诉
    博文内容全部不再显示,请需要相关资讯的站长朋友到必应搜索。谢谢!

    另祝:版权碰瓷诈骗团伙,早日弃暗投明。

    相关新闻:借版权之名、行诈骗之实,周某因犯诈骗罪被判处有期徒刑十一年六个月

    叹!百花齐放的时代,渐行渐远!



    这个YCbCr是从YUV派生出来的,比较适合处理数字图像,JPEG压缩就是在这个彩色空间中处理的。变换公式。

     1 clear all;
     2 close all;
     3 clc;
     4 
     5 img=imread('lena_color.jpg');
     6 %img=mat2gray(img);  %任意区间映射到[0,1];
     7 [m n dim]=size(img);
     8 imshow(img);
     9 %%图像的RGB
    10 img=double(img);
    11 R=img(:,:,1);
    12 G=img(:,:,2);
    13 B=img(:,:,3);
    14 
    15 %%RGB2YCbCr
    16 Y=zeros(m,n);    %亮度
    17 Cb=zeros(m,n);   %彩度
    18 Cr=zeros(m,n);   %浓度
    19 matrix=[0.299 0.587 0.114;
    20         -0.1687 -0.3313 0.5;
    21         0.5 -0.4187 -0.0813];
    22 for i=1:m
    23    for j=1:n 
    24         tmp=matrix*[R(i,j) G(i,j) B(i,j)]';
    25         Y(i,j)=tmp(1);
    26         Cb(i,j)=tmp(2)+128;
    27         Cr(i,j)=tmp(3)+128;
    28    end
    29 end
    30 
    31 %%YCbCr2RGB
    32 matrix=inv(matrix);
    33 for i=1:m
    34    for j=1:n 
    35         tmp=matrix*[Y(i,j) Cb(i,j)-128 Cr(i,j)-128]';
    36         R(i,j)=tmp(1);
    37         G(i,j)=tmp(2);
    38         B(i,j)=tmp(3);
    39    end
    40 end
    41 
    42 %%如果正反变换都没错的话,那么图像是不变的
    43 img(:,:,1)=R;
    44 img(:,:,2)=G;
    45 img(:,:,3)=B;
    46 figure;
    47 imshow(uint8(img))