YUV цветовое пространство и цветность

Хорошо. Для краткости предположим:

  1. У меня монохромное изображение; И изначально он представлен в цветовом пространстве RGB.
  2. Я не знаю, в какой последовательности я это сделаю, но мне нужно конвертировать изображение в пространство YUV (а) и загрузить его в PictureBox контролировать (б) и делать несколько цветных каракулей;
  3. И, наконец, мне нужно как-то узнать / узнать, какие пиксели были окрашены.

    И как рисовать линии / точки на загруженном изображении в 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 объект.

Другие вопросы по тегам