YUV цветовое пространство и цветность - PullRequest
1 голос
/ 20 мая 2011

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

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

    А как рисовать линии / точки на загруженном изображении в PictureBox?

Есть идеи?

1 Ответ

3 голосов
/ 20 мая 2011

Преобразование монохромного изображения из 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.

...