Интересно, что делает MATLAB при использовании функции rgb2xyz()? Я не могу повторно произвести результаты, используя матрицу преобразования rgb2xyz. Кроме того, существует ли разница между использованием makecform ('srgb2xyz') и использованием rgb2xyz()? они производят разница результатов ..разница между makecform ('srgb2xyz') и rgb2xyz() в matlab
0
A
ответ
1
Белая точка по умолчанию makecform('srgb2xyz')
, как представляется, D50
, в то время как rgb2xyz
по умолчанию для D65
.
>> applycform([.2 .3 .4],makecform('srgb2xyz','AdaptedWhitePoint',whitepoint('D65')))
ans =
0.0638 0.0690 0.1356
>> rgb2xyz([.2 .3 .4])
ans =
0.0638 0.0690 0.1356
>> applycform([.2 .3 .4],makecform('srgb2xyz'))
ans =
0.0617 0.0679 0.1024
>> rgb2xyz([.2 .3 .4],'WhitePoint','D50')
ans =
0.0616 0.0679 0.1025
Примечание документация для makecform
предлагает использовать более поздние rgb2xyz
вместо этого. Что касается вашего комментария о воспроизведении результатов с использованием матрицы, обратите внимание, что матрицы обычно производятся от/применяются к данным линейного. Если вы хотите воспроизвести результаты, вам также понадобится модель гамма-коррекции srgb.
Благодарим вас за разъяснение. Помогает!!! –
Но есть ли предпочтение выбора D65 или D50 ?? Я выполняю работу по сегментации и как-то используя команду «rgb2xyz» дает мне гораздо лучший результат. –
Если вы не знаете, что ваши входные изображения закодированы в каком-то другом цветовом пространстве, D65 - это хорошая догадка. Большинство изображений в Интернете кодируются в предположении, что sRGB-дисплей и sRGB являются разумным описанием большинства обычных мониторов. sRGB определяет белую точку как D65. Кстати, если вы найдете мой ответ полезным, отметьте как принято. –