gpt4 book ai didi

image-processing - 在C#中将图像转换为黑白或棕褐色

转载 作者:行者123 更新时间:2023-12-04 16:36:42 28 4
gpt4 key购买 nike

我想将图像更改为黑白或棕褐色。
转换图像后,我想用转换后的图像替换现有图像。

请给我一些建议。

最佳答案

使彩色图像去饱和的方法有很多。实际上,虽然某些方法比其他方法更“正确”,但可能没有一种“正确”或“正确”的方法来执行此操作。
我假设您的图像采用RGB(红绿蓝)格式(尽管BGR也很常见)。

适用于大多数照片(但不适用于合成图像)的最简单方法是仅使用3个RGB channel 中的绿色 channel 。人类对光谱中绿色部分的变化最敏感,因此绿色 channel 覆盖了大部分可见范围,并且非常接近您想要的灰度图像。

生成灰度图像的更好方法是使用3个RGB channel 的加权平均值。选择相等的权重(0.33 * R + 0.33 * G + 0.33 * B)将获得非常好的灰度图像。其他凸权重(非负权重之和为1)将给出不同的结果,其中一些可以认为在美学上更令人愉悦,而某些则可以考虑感知参数。 (YUV uses these weights:Y = 0.299*R + 0.587*G + 0.114*B)

您始终可以将图像转换为只有一个灰度 channel (和2个“颜色” channel )的另一个颜色空间,例如HSV(V是灰度),YUV(Y是灰度)或Lab(L是灰度) )。差异不应该太大。

术语“去饱和”来自HSV空间。如果将图像转换为HSV,将S channel (饱和度)设置为全零,然后渲染图像,您将获得3 channel 去饱和的“彩色”图像。

将这些灰度 channel 复制为RGB,将为您提供3 channel 去饱和的“彩色”图像-其中所有3个RGB channel 都相同。

获得此3 channel (RGB)饱和度图像后,可以将每个 channel 乘以单独的权重以使图像着色-棕褐色图像。

给定一个灰色像素[v,v,v],将其着色为:[v*a, v*b, v*c],如0 <= a,b,c <=1

关于image-processing - 在C#中将图像转换为黑白或棕褐色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4624998/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com