Какой паттерн, как организовать структуру проекта для разных форматов пикселей 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 или есть еще что лучше?
Еще лучше использовать статстческую информацию о цвете объекта и фона и, на основании этого, расчитать весовые коэффициенты для оптимальной сегментации.
Я бы посоветовал делать абстракцию не на уровне пикселя, а на уровне картинки. Ибо так можно оптимальнее организовывать расположение пикселей в памяти да и обрабатывать изображение быстрее. Вместо функции, которая для каждого пикселя проверяет, а что там у него брать R или Y, используют функции, которым передается plane - один канал. Что там конкретно R, G, Y, V - обычно не важно. Если вы ищете контур или сглаживаете изображение, то работа идет абсолютно одинаково в каждом канале.
В качестве примера можно посмортреть вот тут или тут.