YUV цветовое пространство и цветность
Хорошо. Для краткости предположим:
- У меня монохромное изображение; И изначально он представлен в цветовом пространстве RGB.
- Я не знаю, в какой последовательности я это сделаю, но мне нужно конвертировать изображение в пространство YUV (а) и загрузить его в
PictureBox
контролировать (б) и делать несколько цветных каракулей; И, наконец, мне нужно как-то узнать / узнать, какие пиксели были окрашены.
И как рисовать линии / точки на загруженном изображении в
PictureBox
?
Есть идеи?
1 ответ
Преобразование монохромного изображения из RGB в YUV очень просто:
Y = R
U = 0
V = 0
Y - яркость, рассчитанная как 0.299 * R + 0.587 * G + 0.114 * B
, но так как R = G = B для монохромного изображения, оно совпадает с (0.299+0.587+0.114) * R
что просто 1 * R
,
U рассчитывается как 0.436 * ((B - Y) / 0.886)
, но при Y = B он всегда равен нулю.
V рассчитывается как 0.615 * ((R - Y) / 0.701)
, но при Y = R оно всегда равно нулю.
Рисовать линии на Bitmap
объект, вы используете Graphics.FromImage
метод для создания Graphics
объект для этого, а затем использовать DrawLine
метод рисования линий.
Чтобы нарисовать пиксели, используйте SetPixel
метод Bitmap
объект.