Image:Barns grand tetons YCbCr separation.jpg

From Wikipedia, the free encyclopedia

Wikimedia Commons logo This is a file from the Wikimedia Commons. The description on its description page there is shown below.
Commons is a freely licensed media file repository. You can help.

Contents

[edit] Beschreibung

[edit] Summary

This takes an image (Image:Barns grand tetons.jpg) and displays the Y, Cb and Cr elements of it.

Note that the Y image is essentailly a greyscale copy of the main image; that the white snow is represented as a middle value in both Cr and Cr; that the brown barn is represented by strong Cb and strong Cr; that the green grass is represented by strong Cb and weak Cr; and that the blue sky is represented by weak Cb and weak Cr. The murkiness of the Cb and Cr elements (to the human eye) demonstrate why many image compression codecs downsample colour; details in Y are much more visible than in Cb or Cr.

[edit] Generator code

In MATLAB:

RGBimage = imread('barns_grand_tetons.jpg');
[height,width,depth]=size(RGBimage);
YCbCrimage=RGB2YCbCr(RGBimage); % If you don't have the right version/toolkit this function 
                                % might not be availiable. Luckily, it's easy to implement 
                                % ourselves. Drop me (Mike1024) a message and I'll send you 
                                % my code to do it.

% Newer versions of matlab need outputimage=zeros(height*4,width,depth,'uint8');
outputimage=uint8(zeros(height*4,width,depth));
for w=1:width,
  for h=1:height,
    outputimage(h,w,1) = YCbCrimage(h,w,1); %Copy Y, Cb and Cr for normal image
    outputimage(h,w,2) = YCbCrimage(h,w,2);
    outputimage(h,w,3) = YCbCrimage(h,w,3);
    outputimage(h+height,w,1) = YCbCrimage(h,w,1); %Copy Y only for first component
    outputimage(h+height,w,2) = 128;
    outputimage(h+height,w,3) = 128;
    outputimage(h+(2*height),w,2) = YCbCrimage(h,w,2); %Cb only for second component
    outputimage(h+(2*height),w,1) = 128;
    outputimage(h+(2*height),w,3) = 128;
    outputimage(h+(3*height),w,3) = YCbCrimage(h,w,3); %Cr only for third component
    outputimage(h+(3*height),w,1) = 128;
    outputimage(h+(3*height),w,2) = 128;
  end
end

image(YCbCr2RGB(outputimage));
imwrite(YCbCr2RGB(outputimage),'YCbCr_separation.jpg','jpeg');

[edit] Licensing

Based on the (public domain) photo Image:Barns grand tetons.jpg. Code above and resulting output by Mike1024.

Public domain This image has been released into the public domain by its author, en:Mike1024. This applies worldwide.

In some countries this may not be legally possible; if so:
en:Mike1024 grants anyone the right to use this work for any purpose, without any conditions, unless such conditions are required by law.


العربية | Български | Deutsch | Ελληνικά | English | Español | Français | Italiano | 日本語 | 한국어 | Polski | Русский | Српски / Srpski | Svenska | தமிழ் | Українська | ‪中文(繁體)‬ | ‪中文(简体)‬  +/-

File history

Click on a date/time to view the file as it appeared at that time.

Date/TimeDimensionsUserComment
current10:58, 26 December 20061,600×4,780 (825 KB)Wdwd (==Summary== This takes an image (Image:Barns grand tetons.jpg) and displays the Y, Cb and Cr elements of it. Note that the Y image is essentailly a greyscale copy of the main image; that the white snow is represented as )
The following pages on the English Wikipedia link to this file (pages on other projects are not listed):