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.
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
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
@ DragonDance27 können Sie die Ausgabe von 'imfinfo' auf Ihrem Bild veröffentlichen? – Amro