Я заинтересован в работе с изображениями цветового пространства YUV в Matlab, но (поправьте меня, если я ошибаюсь), я считаю, что цветовое пространство Matlab по умолчанию работает с RGB?
Поэтому я могу вводить себя в заблуждение, думая, что работаю, например, с каналом яркости (Y), тогда как на самом деле я работаю с красным каналом (R). Я прав? Можно ли изменить используемое цветовое пространство?
Я знаю о преобразованиях, но на данный момент мне любопытно, можно ли указать Matlab работать с цветовым пространством YUV и, например, просто изменить канал яркости в одной строке (вместо изменения интенсивности красного, если RGB ).
Я наткнулся на: http://www.mathworks.com/help/imaq/returnedcolorspace.html (ReturnedColorSpace), но я не понимаю, как это реализовать.
Редактировать:
t = Tiff('e82.tiff','r');
[Y,Cb,Cr] = read(t);
close(t)
figure; imshow(Cr);
Я также пробовал этот код в Matlab, но я не уверен, правильно ли я предполагаю, что он считывает канал Cr как оттенки серого, потому что он предполагает задействованное цветовое пространство RGB? (На рисунке показана версия изображения в оттенках серого)
РЕДАКТИРОВАТЬ (28.03.16) - вывод imfinfo моего файла YUV.
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]
Однако следующий фрагмент кода записывает изображения «Y», «U», «V», как если бы они были RGB (каждый вывод представляет собой версию каждого цветового канала RGB в оттенках серого).
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');
Преобразование этого изображения «YUV» в YUV (через код rgb2yuv) и повторение приведенных выше 4 строк кода выводит то, что я визуально ожидаю. a1 является каналом яркости, а остальные — каналом цветности.
imfinfo
на своем изображении? - person Amro   schedule 19.03.2016