2010-04-02 98 views
0

即时通讯尝试在OpenGL CE中创建图像过滤器。目前我正在尝试创建一系列4x4矩阵并将它们相乘。然后使用glColorMask和glColor4f来相应地调整图像。我已经能够整合色调旋转,饱和度和亮度。但我无法加入对比。迄今谷歌并没有得到有益的帮助。我发现了一些矩阵,但它们似乎不起作用。你们有什么想法吗?OpenGL中的矩阵图像处理CE

+0

什么是“OpenGL CE”? – genpfault 2010-04-02 22:16:59

+0

你可以显示色调,旋转和亮度,饱和度的代码吗? – 2016-10-10 22:10:35

回答

0

我不得不说,我还没有听说过使用4x4矩阵做亮度或对比度。我认为这些操作是在图像的直方图上完成的,而不是以本地每像素为基础。

举例来说,你的图像的值从0到200,你想让它更明亮。然后,您可以为图像添加值,并且屏幕上显示的内容会更亮。如果你想以增强图像的对比度,你会做乘法,如:

(image_value - original_min)/(original_max - original_min) * (new_max - new_min) + new_min 
如果你希望你的新的最小值为0

和新的最高是255,那么这个等式将相应拉长对比。 original_min和original_max不一定是整个图像的实际最小值和最大值,如果您想要增强特定区域并且不介意上面的剪切值,或者可以是图像分部的最小值和最大值,或者低于你的new_min/new_max。

我想如果你已经知道你的范围等等,你可以将这个公式结合到一个4x4矩阵来实现你的目标,但只有在你完成了一个合格后才能找到原始图像的最小值和最大值。

我也会确保从图像数据中取消图像的显示;上述操作具有破坏性,因为您将丢失信息,因此您希望保留原件并显示副本。