У меня есть 14-битное изображение, которое я хотел бы преобразовать в цветовое пространство YCrCb. Насколько мне известно, конверсии написаны для 8-битных изображений. Например, когда я использую функцию matlab rgb2ycrcb, и я конвертирую ее обратно в rgb, тогда все будет белым. Для меня очень важно не потерять никакой информации. Я хочу сделать это, чтобы отделить яркость от цветности и сделать некоторый процесс и преобразовать его обратно в RGB.14 бит RGB до YCrCb
ответ
Стандарт YCbCr для преобразования количества из цветового пространства RGB был специально разработан для 8-битных изображений цветных каналов. Масштабирующие коэффициенты и константы настраиваются таким образом, чтобы вход был 24-битным RGB-изображением (8 бит на канал. Кстати, ваши записи запутывают. Обычно вы используете xx-bit RGB, чтобы представить, сколько бит , который должен представлять изображение).
Одно из предложений, которое я мог бы сделать, - это перемасштабировать ваши каналы независимо, чтобы они шли от для всех каналов. rgb2ycbcr
может принимать входы с плавающей запятой, если они находятся в диапазоне [0-1]
. Судя по вашему контексту, у вас есть 14 бит, представляющих каждый цветной канал. Таким образом, вы можете просто сделать это, учитывая, что изображение хранится в A
и выходные данные будут сохранены в B
:
B = rgb2ycbcr(double(A)/(2^14 - 1));
Вы можете обрабатывать ваши цветности и яркости компонентов с использованием выходного rgb2ycbcr
. Имейте в виду, что компоненты также будут нормализованы между [0-1]
. Сделайте свою обработку, затем конвертируйте обратно с помощью ycbcr2rgb
, затем перетащите ваши выходы на 2^14 - 1
, чтобы вернуть изображение в 14-бит RGB на канал. Предполагая, что Bout
это ваш вывод изображения после обработки в цветовом пространстве YCbCr, сделайте следующее:
C = round((2^14 - 1)*ycbcr2rgb(Bout));
Мы округлить, так как это, скорее всего, обеспечивает значение с плавающей точкой, и ваши цветовые плоскости изображения должны быть целыми числами без знака.
- 1. JPEG: YCrCb <-> RGB точность преобразования
- 2. OpenCV Python: конвертировать RGB в YCrCb
- 3. RGB Цветное квантование от 8 бит до 6 бит
- 4. Преобразование RGB-изображения в RGB 16-бит и 8-бит
- 5. Изменение альфа-бит rgb
- 6. ява RGB цветовое пространство для пространства преобразования YCrCb Color
- 7. OpenCV и 14/42 бит
- 8. OpenCV с RGB 16 бит
- 9. бит с 32-битной JPG до 14 бит в оттенках серого. Моя математика неверна.
- 10. Определение цвета с использованием цветового пространства YCrCb?
- 11. Преобразование 32-битного изображения rgb в 8 бит rgb C++
- 12. Преобразование 14 бит в 8 бит и обратно
- 13. 7-бит до 0xEF
- 14. Здание pyV8 НОМЕР: Ubuntu 14 64 бит
- 15. Как преобразовать 14 бит Hex в десятичный
- 16. Разделение изображения YCrCb на его каналы интенсивности
- 17. Значение HBRUSH до RGB
- 18. Haskell RGB до CMYK
- 19. OpenCV RGB до серого
- 20. Байт для бит в BMP, получающий RGB
- 21. Рисовать массив бит (rgb) в окнах
- 22. StringFormat («0214» до «02:14»)
- 23. Heroku_can't модернизировать до Cedar-14
- 24. значения rgb до 0 до 1 шкалы
- 25. 8 бит звуковых образцов до 16 бит
- 26. Linear PCM 16 бит до 8 бит
- 27. Обновление mysql 32 бит до 64 бит
- 28. Джексон декодирует «14: 89: FD: D3: E7: 8C» до 14
- 29. Бит до байта в
- 30. Радиус многоканального изображения до RGB