【问题标题】:matrix image processing in OpenGL CEOpenGL CE中的矩阵图像处理
【发布时间】:2010-04-02 17:10:54
【问题描述】:

我正在尝试在 OpenGL CE 中创建图像过滤器。目前我正在尝试创建一系列 4x4 矩阵并将它们相乘。然后使用 glColorMask 和 glColor4f 相应地调整图像。我已经能够整合色调旋转、饱和度和亮度。但我无法添加对比度。到目前为止,谷歌还没有提供帮助。我找到了一些矩阵,但它们似乎不起作用。大家有什么想法吗?

【问题讨论】:

  • 能否显示色相、旋转和亮度、饱和度的代码?

标签: opengl image-processing colors matrix


【解决方案1】:

我不得不说,我还没有听说过使用 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 矩阵中以实现您的目标,但前提是您必须通过查找原始图像的最小值和最大值。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多