Форум программистов, компьютерный форум CyberForum.ru

C++

Войти
Регистрация
Восстановить пароль
 
panotnap
30 / 30 / 4
Регистрация: 24.09.2014
Сообщений: 242
#1

Преобразование из YCbCr в RGB - C++

21.03.2016, 02:11. Просмотров 549. Ответов 1
Метки нет (Все метки)

ЧЯДнТ? Формула? Код? Цветовое пространство?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#define BYTE uchar
 
void MainWindow::yuv_rgb(BYTE* array, BYTE Y) 
    {
    BYTE Cr, Cb;
    float redF, greenF, blueF;
    for(uint n= 0,  Cr= 16; Cr < 240; Cr++)
        for(int     Cb= 16; Cb < 240; Cb++, n+= 4) 
            {
            redF=   255/219*(Y-16) +                                                255/112*0.701*(Cr-128);
            greenF= 255/219*(Y-16) -        255/112*0.886*(0.114/0.587)*(Cb-128) -  255/112*0.701*(0.299/0.587)*(Cr-128);
            blueF=  255/219*(Y-16) +        255/112*0.886*(Cb-128);
            array[n + 0]= (BYTE)blueF;
            array[n + 1]= (BYTE)greenF;
            array[n + 2]= (BYTE)redF;
            array[n + 3]= 0;    //  alpha
            }
    }
С другими формулами результат визуально другой, но с такими же резкими градиентами...

Получившиеся изображения при Y= 16, 128, 235.
Изображения
   
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.03.2016, 02:11
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Преобразование из YCbCr в RGB (C++):

Массив пикселей RGB в JPEG - C++
Всем доброго времени суток! Пишу программу под МК на С/С++. На входе имею массив пикселей в формате RGB565 (2 байта/пиксель). На...

Как выделить определенный диапазон цвета RGB на картинке bmp? - C++
всем доброго времени суток!помогите,пожалуйста, в написании кода.есть картинка bmp. Надо разложить ее на цвета rgb. определить диапазон...

Преобразование визуальных данных из формата RGB в YUV (4:2:0) - C++ Builder
Помогите, пожалуйста, добрые люди. При создании программы преобразовании визуальных данных из формата RGB в YUV наткнулся на проблему в...

RGB в INT - C++ Builder
Как перевести значение цвета RGB(100,100,100) в INT ? Чтобы потом это INT использовать для задания цвета пикселю... Пробовал int...

Стего в RGB!!! - C++ Builder
Товарищи, помогите спрятать текстовик (TXT) в картинке (BMP)!!! я конечно кое-что написал, но что-то не уверен. и до конца не сделал ((( ...

RGB в INT - C++ Builder
Как перевести значение цвета RGB(100,100,100) в INT ? Чтобы потом это INT использовать для задания цвета пикселю...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
panotnap
30 / 30 / 4
Регистрация: 24.09.2014
Сообщений: 242
21.03.2016, 04:39  [ТС] #2
Нашёл ответ в топике Преобразование bitmap в YCbCr и обратно

Не была выполнена следующая проверка на переполнение выходного РГБ:
C++
1
2
3
if(redF > 255)      redF= 255;      if(redF < 0)    redF= 0;
if(greenF > 255)    greenF= 255;    if(greenF < 0)  greenF= 0;
if(blueF > 255)     blueF= 255;     if(blueF < 0)   blueF= 0;
И ещё uint в цикле надо было поменять на int.
C++
1
2
for(int n= 0,   Cr= 16; Cr < 240; Cr++)
    for(int     Cb= 16; Cb < 240; Cb++, n+=4)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.03.2016, 04:39
Привет! Вот еще темы с ответами:

Из colordialog в RGB - C++ Builder
Возникла некоторая проблема, как можно из компонента colordialog вместо 16го кода, который сохраняется в переменной color, получить...

Перевод RGB в HSV - C++ Builder
Уважаемые форумчане! Есть функция для перевода RGB в HSV. void RGBtoHSV (int *hue, int *sat, int *val, int r, int g, int b) { int...

Восстановление изображения по RGB - C++ Builder
Здравствуйте, у меня есть картинка загруженная в массив структуры: struct r_g_b {float r, float g, float b} - color_display, и отображена в...

Конвертер BMP в RGB - C++ Builder
Добрый день,помогите пожалуйста, нужно создать конвертер BMP картинки в RGB для дальнейших наложений фильтров, а потом из RGB в BMP?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru