【发布时间】:2013-09-19 06:51:12
【问题描述】:
我正在学习图像处理,并看到了如何通过更改颜色矩阵将图像变为黑白的实现。下面是来自Craigs Utility Library的这样一个函数的实现:
ColorMatrix TempMatrix = new ColorMatrix();
TempMatrix.Matrix = new float[][]{
new float[] {.3f, .3f, .3f, 0, 0},
new float[] {.59f, .59f, .59f, 0, 0},
new float[] {.11f, .11f, .11f, 0, 0},
new float[] {0, 0, 0, 1, 0},
new float[] {0, 0, 0, 0, 1}
};
Bitmap NewBitmap = TempMatrix.Apply(Image);
我从this 文章中知道矩阵代表RGBAW(红绿蓝琥珀色和白色)。因此,据我了解,颜色矩阵将每种 RGB 颜色与数组 {.3f, .59f, .11f} 相乘。但是我相信我错过了最后一步。
常数 .3f、.59f 和 .11f 是从哪里来的,它们使图像变成黑白的?这个矩阵乘法是如何让图像变成黑白的?
【问题讨论】:
标签: c# .net image-processing matrix