Bild:Barns grand tetons YCbCr separation.jpg
aus Wikipedia, der freien Enzyklopädie

Größe der Voransicht: 200 × 598 Pixel
Version in höherer Auflösung (1600 × 4780 Pixel, Dateigröße: 825 KB, MIME-Typ: image/jpeg)
![]() | Diese Datei wird aus dem zentralen, mehrsprachigen Dateiarchiv Wikimedia Commons eingebunden. Die Quellen- und Lizenzangaben nach dem roten Trennstrich stammen von der Original-Beschreibungsseite der Datei. |
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.
![]() |
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: |
Dateiverweise
Die folgenden Artikel benutzen diese Datei: