@SergeySerge11

Какой паттерн, как организовать структуру проекта для разных форматов пикселей RGB и YUV?

Есть 2 класса
YUV double Y,U,V
RGB byte R,G,B

Как можно сделать общий интерфейс или что-то еще для этих 2 структур? Какой паттерн? Ведь там поля c именами rgb и байтовые поля, а там double y,u,v
Так что бы передать объект, который будет по формату выдавать пиксель?
И еще, если кто знает, в каком формате лучше всего подготавливать к сегментации/бинаризации изображения?
К примеру, по числу Y в YUV, или (R+G+B)/3 или есть еще что лучше?
  • Вопрос задан
  • 100 просмотров
Пригласить эксперта
Ответы на вопрос 3
hint000
@hint000
у админа три руки
или (R+G+B)/3 или есть еще что лучше?
Есть лучше, потому что G для глаза намного ярче, чем B:
0.2126*R + 0.7152*G + 0.0722*B
https://stackoverflow.com/questions/596216/formula...
https://en.wikipedia.org/wiki/Relative_luminance
Ответ написан
wataru
@wataru Куратор тега Алгоритмы
Разработчик на С++, экс-олимпиадник.
Я бы посоветовал делать абстракцию не на уровне пикселя, а на уровне картинки. Ибо так можно оптимальнее организовывать расположение пикселей в памяти да и обрабатывать изображение быстрее. Вместо функции, которая для каждого пикселя проверяет, а что там у него брать R или Y, используют функции, которым передается plane - один канал. Что там конкретно R, G, Y, V - обычно не важно. Если вы ищете контур или сглаживаете изображение, то работа идет абсолютно одинаково в каждом канале.

В качестве примера можно посмортреть вот тут или тут.
Ответ написан
Комментировать
@AlexSku
не буду отвечать из-за модератора
Примеры сегментаций в четырёх форматах на Матлабе.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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