Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Зачем нужен указатель на указатель при работе с однонаправленным списком? http://www.cyberforum.ru/cpp/thread1689007.html
День добрый. Столкнулся с непониманием этой темы. В частности, совершенно непонятен алгоритм инициализации такого вот списка. Например: //создание однонаправленного списка (добавления в конец) void...
C++ программа на С++ как решить эту программу? http://www.cyberforum.ru/cpp/thread1688143.html
Просчитать минимальную дистанцию между человеком и станциями C++
Привет , всем. Скажите пожалуйста , у меня дипломная по проектированию полного маршрута автобусов. И у меня сейчас возникла проблема , в том , что мне нужно просчитать расстояние между человеком и...
Иконка в запросе UAC C++
Здравствуйте. Необходимо, чтобы оторажалась иконка в запросе UAC. Подскажите пожалуйста как это сделать? Написал приложение, сформировал файл ресурсов res.rc, но при запросе UAC иконка не...
C++ Найти кратчайший путь в лабиринте http://www.cyberforum.ru/cpp/thread1683906.html
Необходимо использовать поиск с возвращением для решения следующей задачи: Найдите путь между двумя выделенными точками в лабиринте. Найдите кратчайший такой путь. Найдите все такие пути.
C++ Как получить доменный адрес и А-записи с pcap файла? Привет всем. Появилась проблема с pcap файлом. Я получил свой pcap файл с помощью утилиты tcpdump с фильтрами: -v -i lo Вот пример того что я получил в текстовом (расшифрованном формате):... подробнее

Показать сообщение отдельно
panotnap
30 / 30 / 4
Регистрация: 24.09.2014
Сообщений: 242

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

21.03.2016, 02:11. Просмотров 605. Ответов 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.
0
Изображения
   
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru