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

有没有什么软件脚本能自动检测并移除纯色背景?

  •  
  •   alwayshere · 2018-09-27 08:19:48 +08:00 · 3919 次点击
    这是一个创建于 2238 天前的主题,其中的信息可能已经有所发展或是发生改变。

    现在手上有几千张这样纯色背景的图片,红白黄蓝都有,像下面两张图这样,有没有什么开源的脚本或者软件,能自动检测识别这种背景,然后移除生成透明背景 PNG 图片?

    https://i.loli.net/2018/09/27/5bac2156a658e.jpg https://i.loli.net/2018/09/27/5bac21b2a13e2.jpg

    21 条回复    2018-09-28 00:11:45 +08:00
    wdy3334
        1
    wdy3334  
       2018-09-27 08:34:50 +08:00 via Android   ❤️ 1
    mrchi
        2
    mrchi  
       2018-09-27 08:35:09 +08:00   ❤️ 1
    提供个思路。先生成彩色直方图,背景色应该就是彩色直方图中值最多的颜色。以此为基础把该颜色的像素点进行处理。但是看你的图片不完全是纯色背景,还有阴影,可能会更复杂一些。
    delectate
        3
    delectate  
       2018-09-27 08:41:43 +08:00
    太难了,你这个不叫纯色,抠图很麻烦的。
    alvin666
        4
    alvin666  
       2018-09-27 08:43:56 +08:00 via Android
    有阴影用 ps 都费劲...
    yulitian888
        5
    yulitian888  
       2018-09-27 08:44:16 +08:00
    scg16
        6
    scg16  
       2018-09-27 08:59:44 +08:00
    20 一张
    Muchisan
        7
    Muchisan  
       2018-09-27 09:01:04 +08:00
    纯色的背景应该比较好弄,但很多背景都只是肉眼纯色。容差设为多少也是个问题,还有怎么判断哪里是背景,哪里是需要保留的图像,保留图像上有和背景色相同的区域怎么办。
    dacer250
        8
    dacer250  
       2018-09-27 09:01:36 +08:00
    联系我,低价帮你处理,qq:OTgzMTM5MDk3
    dangyuluo
        9
    dangyuluo  
       2018-09-27 09:10:44 +08:00
    开源的不知道,但是用 opencv 的话思路还是很清晰的:

    1, 计算 histogram,获取背景图片的 RGB 值。
    2, 用 numpy 把与这个值接近的像素都设为透明。
    3, 生成 PNG
    dangyuluo
        10
    dangyuluo  
       2018-09-27 09:11:40 +08:00
    当然了,最好用 floodfill 做一下检测,如果区域面积太小的话,可能是误判为背景。这个就要做数学模型了。
    annielong
        11
    annielong  
       2018-09-27 09:17:04 +08:00
    最终可能还是人工制作
    Xiqiuqiu
        13
    Xiqiuqiu  
       2018-09-27 09:30:35 +08:00
    sorry !方向有点偏,这套东西主要做人像的背景扣除
    kslr
        14
    kslr  
       2018-09-27 09:57:08 +08:00 via Android
    另一个思路,计算 rgb 连续范围计算权重
    zzutmebwd
        15
    zzutmebwd  
       2018-09-27 10:00:22 +08:00
    阴影没法处理的。
    blaxmirror
        16
    blaxmirror  
       2018-09-27 10:04:38 +08:00
    所有直接取色变透明的都会产生问题,因为没法判断背景还是主题,还要加上对于连续区域的判断(类似 ps 的魔棒),这又会涉及到参数。除此之外,阴影也有很大的影响。
    我感觉除了深度学习,别的都逃不开大规模手动调整的坑
    moonkiller
        17
    moonkiller  
       2018-09-27 11:30:09 +08:00
    Photoshop 的动作功能啊
    imn1
        18
    imn1  
       2018-09-27 13:05:40 +08:00
    阴影都是过渡色
    silence9527
        19
    silence9527  
       2018-09-27 15:19:44 +08:00
    阴影很麻烦- -。不如手动扣- -
    zynlp
        20
    zynlp  
       2018-09-27 15:28:08 +08:00 via iPhone
    重赏之下必有勇夫
    flowfire
        21
    flowfire  
       2018-09-28 00:11:45 +08:00 via iPhone
    。。。Photoshop,背景橡皮擦工具,把橡皮擦范围调到最大,点一下就没了,如果需要批量处理,用 Photoshop 里自带的动作录制功能,打开文件,使用背景橡皮擦,保存文件,关闭文件,一气呵成
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1054 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 19:58 · PVG 03:58 · LAX 11:58 · JFK 14:58
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.