【发布时间】:2014-05-12 04:15:22
【问题描述】:
我想制作像here所示的过滤器
- 这些是我的目标过滤器,但请指导我如何使用它们
- 如何制作这样的过滤器?
- 我需要遵循哪些算法?作为初学者,我需要采取哪一步?
- 哪种方法是获取 RGB 值和滤镜阴影的更好和最简单的方法。
spektre 上面链接中的图像副本:
- 源图像是第一行中相机之后的第一个图像。
【问题讨论】:
标签: image opencv image-processing computer-vision
我想制作像here所示的过滤器
spektre 上面链接中的图像副本:
【问题讨论】:
标签: image opencv image-processing computer-vision
从单个非测试屏幕图像很难说。
黑白滤镜
很简单,只需将 RGB 转换为强度 i,然后改为 RGB 写入 iii 颜色。最简单的不精确转换是
i=(R+G+B)/3
但更好的方法是使用权重
i=w0*R+w1*G+w2*B
w0+w1+w2=1 的值可以通过一点 google 搜索找到
其余的
一些过滤器看起来像这样的指数颜色或加权颜色:
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;
顺便说一句,如果你想要最接近的相似度,你可以:
在输入图像中查找测试颜色
像 R 色调,G 色调,B 色调,RG,RB,BG,RGB 色调0-255。然后在相同位置从过滤后的图像中获取颜色,并为每个阴影绘制 R,G,B 强度绘制依赖关系图。
一个轴是输入图像颜色强度,另一个是过滤颜色的R,G,B强度。然后你应该看到直接使用哪个公式,也可以从中计算权重。这就是红色的过度指数作用
如果线条不是直线而是曲线
然后使用某种伽玛校正,因此公式使用更高阶的多项式(2、3、4 的幂...),主要是 2 的幂。在这种情况下,权重也可以是负数!!!
某些滤镜可以使用不同的色彩空间
例如将 RGB 转换为 HSV 变换色调并转换回 RGB。这会稍微改变颜色。
【讨论】:
w 的价值及其作用? ,我写了 3 个滚动条的应用程序,它与 RGB 一起工作,但我怎么能把 w 和他们一起改变他们的效果
0.7 , .03 ; 0.1 ,0.43 ; 而不是将此矩阵与图像垫相乘?