Я пытаюсь попробовать цвета в MATLAB, используя Приложение Color Thresholder а затем использовать L * * б вывод в OpenCV. Но, похоже, масштабное несоответствие. Ниже приведены L * * б весы в MATLAB и OpenCV:
согласно этим двум источникам: Источник 1; а также Источник 2
Кажется, нам нужно следующее L * * б диапазоны для 8-битных изображений в OpenCV:
0 <= L <= 255; 0 <= а <= 255; и 0 <= б <= 255
Как мы конвертируем из MATLAB в OpenCV L * * б цветовая гамма для 8-битных изображений?
Matlab использует спецификации Международного цветного консорциума для представления цвета в своем наборе инструментов для обработки изображений. Спецификация для профилей ICC почти повсеместно используется для спецификации цвета и преобразования.
Лаборатория ICC указала, что LAB используется для преобразования профиля в различных разрешениях. Для 8 битов используются 8-битные значения без знака. L * отображается 0-> 0 и 100-> 255. Для a * и b * значения ограничены от -128 до +127. Таким образом, фактическое кодирование добавляет 128 к a * и b * для получения значений без знака между 0 и 255.
Представление для этих и других, более крупных размеров битов можно найти в таблицах 12 и 13 в разделе 6.3.4.2 спецификации здесь:
http://color.org/specification/ICC1v43_2010-12.pdf
Большинство программ, таких как Photoshop, Tiff-файлы и другие, используют форматы ICC. Кроме того, функции Matlab включают в себя различные функции преобразования, такие как lab2uint8(lab)
который может использоваться для преобразования лабораторных значений с плавающей точкой в их правильное представление в фиксированных размерах, таких как 8-разрядные целые числа без знака.
Других решений пока нет …