1

行。简而言之,假设:

  1. 我有一张单色图像;最初它以 RGB 颜色空间表示。

  2. 我不知道我应该按什么顺序执行此操作,但我需要将图像转换为 YUV 空间 (a) 并将其加载到PictureBox控件 (b) 并制作一些颜色涂鸦;

  3. 最后我需要以某种方式学习/知道哪些像素是彩色的。

    以及如何在加载的图像上绘制线条/点PictureBox

有什么想法吗?

4

1 回答 1

3

将单色图像从 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

于 2011-05-19T20:43:55.407 回答