Как конфертировать из цветовой шкалы MATLAB Lab в цветовую шкалу OpenCV Lab?

Я пытаюсь попробовать цвета в MATLAB, используя Приложение Color Thresholder а затем использовать L * * б вывод в OpenCV. Но, похоже, масштабное несоответствие. Ниже приведены L * * б весы в MATLAB и OpenCV:

  1. MATLAB: 0 <= L <= 100; -100 <= а <= 100; и -100 <= б <= 100

MATLAB Lab Scale

  1. OpenCV: 0 <= L <= 100; -127 <= а <= 127; и -127 <= б <= 127

согласно этим двум источникам: Источник 1; а также Источник 2

Кажется, нам нужно следующее L * * б диапазоны для 8-битных изображений в OpenCV:

0 <= L <= 255; 0 <= а <= 255; и 0 <= б <= 255

Как мы конвертируем из MATLAB в OpenCV L * * б цветовая гамма для 8-битных изображений?

0

Решение

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-разрядные целые числа без знака.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]