V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
xiaoming1992
V2EX  ›  程序员

平均值能代表一张图片吗?有其他更好的参数吗?

  •  
  •   xiaoming1992 · 2020-03-12 22:52:03 +08:00 · 1480 次点击
    这是一个创建于 1530 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我在做一个工具,将一张整体色值相近的图片,调整到另一个色值。如图所示

    图片转换色值

    我的策略是,在 lab 空间,取源图片的各通道的平均值(cv::meanStDdev),遍历像素,将他们"相对平均值的波动"叠加到目标色值上。效果还行,但是总感觉差点意思,想问大家, [平均值] 能大体代表这张图片吗?有其他更好的参数吗? (由于是公司项目,不方便放源码)

    7 条回复    2020-03-13 16:52:46 +08:00
    mxT52CRuqR6o5
        1
    mxT52CRuqR6o5  
       2020-03-12 22:58:27 +08:00 via Android
    直接用 hsv 颜色空间就能实现需求吧
    xiaoming1992
        2
    xiaoming1992  
    OP
       2020-03-12 23:21:18 +08:00
    @mxT52CRuqR6o5 能稍微详细一些吗?不是太明白你的意思。(不过我策略没变,仅仅从 lab 空间换到 hsv 空间,好像效果是好了些,可能是我显示器的缘故,明天到公司用他们的苹果显示器看看。)
    mxT52CRuqR6o5
        3
    mxT52CRuqR6o5  
       2020-03-12 23:54:27 +08:00 via Android
    @xiaoming1992 我的想法是在 hsv 的 h 空间进行你说的那个操作,仅供参考,我也不是最专业的
    mxT52CRuqR6o5
        4
    mxT52CRuqR6o5  
       2020-03-12 23:57:35 +08:00 via Android
    @mxT52CRuqR6o5 h 空间的取值是 0 到 360 度,叠加后溢出了也没关系
    xiaoming1992
        5
    xiaoming1992  
    OP
       2020-03-13 00:02:55 +08:00 via Android
    @mxT52CRuqR6o5 嗯嗯,我对 hsv 各分量都执行了,明天看看效果,再试试仅对 h 通道执行的效果
    Muniesa
        6
    Muniesa  
       2020-03-13 00:05:00 +08:00
    我之前写检测颜色程序的时候用的是通道直方图的峰值,我个人感觉“众数”比“平均数”应该要更有代表性一些,不知道在你这里会不会好一些
    xiaoming1992
        7
    xiaoming1992  
    OP
       2020-03-13 16:52:46 +08:00
    @mxT52CRuqR6o5 hsv 空间效果不太好,一些颜色畸变有些严重。。。

    @Muniesa 刚刚试了一下,在色彩比较纯的图片中,效果为: 众数 > 平均数;色彩斑驳或者颜色变动幅度较大的图片中,平均数 > 众数。

    谢谢两位
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2096 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 16:13 · PVG 00:13 · LAX 09:13 · JFK 12:13
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.