2016-03-18 6 views
0

Ich bin daran interessiert, mit YUV-Farbraumbildern in Matlab zu arbeiten, aber (korrigieren Sie mich, wenn ich falsch liege) Ich glaube, der Standardfarbraum, mit dem Matlab arbeitet, ist RGB?Matlab Standardfarbraum & Arbeiten mit YUV

Daher irreführend ich mich denken, dass ich auf dem Luminanz (Y) -Kanal zum Beispiel arbeite, wenn ich tatsächlich auf dem roten (R) Kanal arbeite. Hab ich recht? Ist es möglich, den verwendeten Farbraum zu ändern?

Ich bin mir der Konvertierungen bewusst, aber im Moment bin ich neugierig, ob es Matlab möglich ist, mit dem YUV - Farbraum zu arbeiten und zum Beispiel einfach den Luminanzkanal in einer Zeile zu ändern (statt den rote Intensität bei RGB).

Ich bin gekommen: http://www.mathworks.com/help/imaq/returnedcolorspace.html (ReturnedColorSpace), aber ich verstehe nicht, wie man es implementiert.

Edit:

t = Tiff('e82.tiff','r'); 
[Y,Cb,Cr] = read(t); 
close(t) 

figure; imshow(Cr); 

Ich habe auch diesen Code in Matlab versucht, aber ich bin mir nicht sicher, ob ich Recht davon ausgehen, bin ist es, den Cr-Kanal als Graustufen zu lesen, weil es RGB-Farbraum wird unter der Annahme, beteiligt? (Die Abbildung zeigt eine Graustufenversion des Bildes)

EDIT (28/3/16) - imfinfo Ausgabe meiner YUV-Datei.

    FileSize: 353500 
        Format: 'tif' 
      FormatVersion: [] 
        Width: 720 
        Height: 243 
       BitDepth: 24 
       ColorType: 'YCbCr' 
      FormatSignature: [73 73 42 0] 
       ByteOrder: 'little-endian' 
      NewSubFileType: 0 
      BitsPerSample: [8 8 8] 
       Compression: 'PackBits' 
PhotometricInterpretation: 'YCbCr' 
      StripOffsets: [1x49 double] 
      SamplesPerPixel: 3 
      RowsPerStrip: 5 
      StripByteCounts: [1x49 double] 
       XResolution: 72 
       YResolution: 72 
      ResolutionUnit: 'Inch' 
       Colormap: [] 
     PlanarConfiguration: 'Chunky' 
       TileWidth: [] 
       TileLength: [] 
       TileOffsets: [] 
      TileByteCounts: [] 
       Orientation: 1 
       FillOrder: 1 
     GrayResponseUnit: 0.0100 
      MaxSampleValue: [255 255 255] 
      MinSampleValue: [0 0 0] 
      Thresholding: 1 
        Offset: 353302 
       Software: 'Lavc56.60.100' 
     YCbCrSubsampling: [2 1] 
     ReferenceBlackWhite: [15 235 128 240 128 240] 

jedoch folgende Code-Schnipsel "Y" "U" "V" Bilder schreibt, als ob sie RGB sind (jeder Ausgang ist eine Graustufen-Version jeder RGB-Farbkanal)

a = imread('3d008.tiff'); 
a1 = a(:,:,1); imwrite(a1,'xdel1.tiff'); 
a2 = a(:,:,2); imwrite(a2,'xdel2.tiff'); 
a3 = a(:,:,3); imwrite(a3,'xdel3.tiff'); 

Konvertieren dieses "YUV" Bild in YUV (über Rgb2yuv Code) und Wiederholen der obigen 4 Zeilen Code Ausgänge was ich visuell erwarten. a1 ist ein Luminanzkanal und die anderen sind Chrominanz.

+0

schlage ich habe Probleme Ihre Frage zu verstehen. Wenn Sie ein RGB-Bild lesen, was möchten Sie sonst noch tun, um YUV zu erhalten? – Daniel

+0

Entschuldigung. Ich lese ein YUV-Farbraumbild (TIFF-Format) und möchte Operationen darauf ausführen. Ohne etwas zu tun, arbeiten Operationen mit dem YUV- oder RGB-System? Zum Beispiel geht U von -128 bis 128, ich glaube für YUV und G geht von 0 bis 255 für RGB. Es würde also Unterschiede geben, abhängig von den Operationen, die ich mache. Ich bin unsicher, ob Matlab standardmäßig mit RGB arbeitet oder tatsächlich erkennt, dass es YUV ist und mit YUV arbeitet. @Daniel – DragonDance27

+0

@ DragonDance27 können Sie die Ausgabe von 'imfinfo' auf Ihrem Bild veröffentlichen? – Amro

Antwort

-3

Lesen dieser Seite Trog werde ich

http://www.mathworks.com/help/imaq/specifying-the-color-space.html

I = imread('image.tiff'); 
I.ReturnedColorSpace = 'YCbCr'; 
+1

'ReturnedColorSpace' ist eine Eigenschaft von' videoinput' Objekten. 'imread' gibt keine' videoinput' Objekte zurück. – Daniel

+0

Sie mischen die Image Processing Toolbox und die Image Acquisition Toolbox zusammen. Das kann man nicht mit 'imread' machen. 'imread' gibt einfach eine rohe Pixelmatrix zurück. Was zurückgegeben wird ** ist kein Objekt/Struktur **, daher ist diese Zuordnung ungültig. – rayryeng