【发布时间】:2014-04-26 20:31:04
【问题描述】:
我正在尝试将图像从彩色转换为灰度,但灰度级别取决于滑块级别。我在互联网上找到的大部分教程都将其变成了绝对灰度。谢谢你的回答,非常感谢
【问题讨论】:
标签: c# image bitmap windows-phone grayscale
我正在尝试将图像从彩色转换为灰度,但灰度级别取决于滑块级别。我在互联网上找到的大部分教程都将其变成了绝对灰度。谢谢你的回答,非常感谢
【问题讨论】:
标签: c# image bitmap windows-phone grayscale
您应该在全彩图像和灰度版本之间使用一些插值,其系数由滑块的值确定。
例如,如果您使用ColorMatrix 转换为灰度,如described here,那么,要获得部分灰度图像,您应该应用插值矩阵。假设“slider=0”是全彩,“slider=1”是灰度,那么定义要应用的矩阵:
<color_matrix_to_apply> = slider * <grayscale_matrix> + (1 - slider) * <identity_matrix>
由于ColorMatrix 不提供算术运算,您应该“手动”为每个矩阵项实现此公式。
matrixToApply.Matrix00 = slider * grayscaleMatrix.Matrix00 + (1 - slider) * identityMatrix.Matrix00;
...
matrixToApply.Matrix44 = slider * grayscaleMatrix.Matrix44 + (1 - slider) * identityMatrix.Matrix44;
【讨论】: