Ребят, вопрос возможно глупый. Нужно RGB цвет конвертировать в чорно-белый

и потом каким-то образом получить изначальный цвет из чорно-белого пикселя. У кого-то есть примеры или какая-то статья, как это можно сделать? А то походу я гуглить не умею)

28 ответов

26 просмотров

увеличить глубину чёрно белого канала))

Возьми по два старших бита из R, G и B и запакуй в grayscale. А потом обратно, когда нужно. Будет небольшая потеря инфы (и грейскейл картинка может странно выглядеть), но худо-бедно упаковать и восстановить будет можно.

Programier- Автор вопроса
Ivan Sokolov
увеличить глубину чёрно белого канала))

Та не, тогда смысла от конвертации у нас на проекте не будет) Тут просто цель сэкономить как можно больше памяти, по этому приходиться экономить на чём угодно

>Нужно RGB цвет конвертировать в чорно-белый Это просто. Самое очевидное и глупое: взять среднее rgb цвета по каналам. Чуть умнее: luminance посчитать (0.299 ∙ Red + 0.587 ∙ Green + 0.114 ∙ Blue)/ >получить изначальный цвет из чорно-белого пикселя Это уже сложнее. Говорят, что сейчас нейросети достаточно неплохо умеют раскрашивать.

Programier- Автор вопроса

Вопрос. Зачем?

Programier- Автор вопроса
koren
Вопрос. Зачем?

Памяти мало. Ну прям очень мало)

LaG1924
>Нужно RGB цвет конвертировать в чорно-белый Это п...

мб можно в HDR как-то закодировать в 1 канал, типо 1*R + round(256*G) + round(256*B)*256

Programier
Памяти мало. Ну прям очень мало)

Дак мало памяти, или цветопередача небольшая?

Programier- Автор вопроса
koren
Микроконтроллер?

Не, порт игры делаем на платформу с 4гб памяти, при том что изначально игру кое-как на 8 впихнули

Alexey Larionov
мб можно в HDR как-то закодировать в 1 канал, типо...

Если идет речь об упаковке нескольких каналов в один, то float-форматы не лучший выбор почти всегда.

Programier- Автор вопроса

Я хз, честно говоря, на этот проект я попал не так давно, по этому точно не скажу

Programier- Автор вопроса
Programier
NDA :)

А тех параметры?

Programier- Автор вопроса
Programier
Я хз, честно говоря, на этот проект я попал не так...

Ещё от данных зависит (и от поддерживаемых форматов на платформе). Несколько интересных вариантов форматов для рассмотрения: R9G9B9E5_SHAREDEXP, B5G5R5A1, BC7, R11G11B10_FLOAT.

koren
Ну платформу уже сказали. Свич

Не знаю какие там форматы (а если даже и знаю, то nda очень жесткие бывают), поэтому буду разговаривать на универсальном языке dxgi.

Dr. Friedrich von Never
Возьми по два старших бита из R, G и B и запакуй в...

В грейскейл влезут по три бита р и г. Но лучше перекодироват в цветоразностную схему и сделать что-то в духе 4Y2R2B/5Y2R1B/6Y1R1B, надо смотреть как потери меньше. Такой вариант, к тому же, будет адекватно (но немного шумновато) выглядеть в грейскейле. Еще лучше будет если даунсэмплировать цветоразностные каналы в 4:2:0.

LaG1924
Не знаю какие там форматы (а если даже и знаю, то ...

настолько жесткие, что даже на языке опенсорсного сдк нельзя?

Похожие вопросы

Обсуждают сегодня

у меня такой вопрос про память в x86 возник, может кто пояснить?.. у процессора есть (как минимум) 3 типа адресов (названия "п1", "п2", "п3" --- мои, чтобы проще было дальше)...
Toideng
6
Какого хера? /Sources/App/Modules/User/Models/UserLinkApple.swift:21:20: warning: stored property '_id' of 'Sendable'-conforming class 'UserLinkApple' is mutable @ID(...
Alexander Sherbakov
14
Портфолио: Зовут меня Александр, мне 36 лет. Город Пушкино. Общий рабочий стаж: ~14 лет Уровень квалификации: Senior Full-stack developer Где прочесть мой код? https://github....
Magic
10
здравствуйте, братья, кто-нибудь знает, как работать с Swift.com или Swift.net?
Ozzy
6
Портфолио: Зовут меня Александр, мне 41 год. Город Киров. Общий рабочий стаж: ~14 лет Уровень квалификации: Senior Full-stack developer Где прочесть мой код? https://github.co...
Magic
11
Приветствую всех, возникла проблема, до этого писал бота в простом формате где при выполнении условий приходило через send_message информация, сейчас решил добавить хендлер на...
Andrew
4
Всем привет после апдейта swift packages не билдится проект на heroku. Компайл тайм ерор: ServiceGroup.swift:513:38: error: extraneous argument label 'for:' in call походу за...
Egor Chernenko
1
У тебя в конфиге нигде нет deny all; или вообще любого deny?
Alexander Sherbakov
10
Я вот тут задался риторическим вопросом. Уже как пару дней я пытаюсь присовокупить к Vapor jemalloc, мало того что топиков, как это вставлять в Vapor нет, так еще и хер поймеш...
Евгений Данилов
39
Ребят, привет. У кого-то есть опыт заказа мерча в сторе? Есть успешные кейсы? Чёт у меня турецкую карту не принимает
Vladimir F.
7
Карта сайта