【问题标题】:Dealing with filters and colour's处理过滤器和颜色
【发布时间】:2014-05-12 04:15:22
【问题描述】:

我想制作像here所示的过滤器

  • 这些是我的目标过滤器,但请指导我如何使用它们
  • 如何制作这样的过滤器?
  • 我需要遵循哪些算法?作为初学者,我需要采取哪一步?
  • 哪种方法是获取 RGB 值和滤镜阴影的更好和最简单的方法。

spektre 上面链接中的图像副本:

  • 源图像是第一行中相机之后的第一个图像。

【问题讨论】:

    标签: image opencv image-processing computer-vision


    【解决方案1】:

    从单个非测试屏幕图像很难说。

    1. 黑白滤镜

      很简单,只需将 RGB 转换为强度 i,然后改为 RGB 写入 iii 颜色。最简单的不精确转换是

      i=(R+G+B)/3
      

      但更好的方法是使用权重

      i=w0*R+w1*G+w2*B
      

      w0+w1+w2=1 的值可以通过一点 google 搜索找到

    2. 其余的

      一些过滤器看起来像这样的指数颜色或加权颜色:

      r=w0*r; if (r>255) r=255;
      g=w1*g; if (g>255) g=255;
      b=w2*b; if (b>255) b=255;
      

      w0,w1,w2<0-10> 范围内编写一个带有3 个滚动条的应用程序,并使用上述公式重绘图像。经过少量试验,您应该可以找到大多数过滤器的w0,w1,w2 ...其余的可以像这样混合颜色:

      r=w00*r+w01*g+w02*b; if (r>255) r=255;
      g=w10*r+w11*g+w12*b; if (g>255) g=255;
      b=w20*r+w21*g+w22*b; if (b>255) b=255;
      

      或:

      i=(r+g+b)/3
      r=w0*r+w3*i; if (r>255) r=255;
      g=w1*g+w3*i; if (g>255) g=255;
      b=w2*b+w3*i; if (b>255) b=255;
      

    顺便说一句,如果你想要最接近的相似度,你可以:

    1. 在输入图像中查找测试颜色

      R 色调,G 色调,B 色调,RG,RB,BG,RGB 色调0-255。然后在相同位置从过滤后的图像中获取颜色,并为每个阴影绘制 R,G,B 强度绘制依赖关系图。

      一个轴是输入图像颜色强度,另一个是过滤颜色的R,G,B强度。然后你应该看到直接使用哪个公式,也可以从中计算权重。这就是红色的过度指数作用

    2. 如果线条不是直线而是曲线

      然后使用某种伽玛校正,因此公式使用更高阶的多项式(2、3、4 的幂...),主要是 2 的幂。在这种情况下,权重也可以是负数!!!

    3. 某些滤镜可以使用不同的色彩空间

      例如将 RGB 转换为 HSV 变换色调并转换回 RGB。这会稍微改变颜色。

    【讨论】:

    • 谢谢你解释清楚的答案,但我没有得到的是w 的价值及其作用? ,我写了 3 个滚动条的应用程序,它与 RGB 一起工作,但我怎么能把 w 和他们一起改变他们的效果
    • 你的意思是重量,就像我们有一个棕褐色过滤器,就像它在 2x2 矩阵中的值一样,假设 0.7 , .03 ; 0.1 ,0.43 ; 而不是将此矩阵与图像垫相乘?
    • 在更改任何滚动条时从所有滚动条位置获取 w 权重并重绘图像。在重绘图像上,您只需遍历整个图像获取颜色 (RGB) 使用方程式之一计算新颜色并将颜色写入相同位置的输出图像(在屏幕上)。然后只需玩一点滚动条,直到输出图像匹配过滤器,如果它确实记得使用的权重(因此将它们写在屏幕或提示上是明智的)。如果您无法匹配某些过滤器,请尝试其他方程式
    猜你喜欢
    • 1970-01-01
    • 2018-05-21
    • 1970-01-01
    • 2011-08-26
    • 1970-01-01
    • 1970-01-01
    • 2013-02-22
    • 1970-01-01
    • 2022-07-15
    相关资源
    最近更新 更多