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

帮我把相片换个底色吧!

  •  
  •   liuhao2050qq · 2017-07-14 14:39:51 +08:00 · 5775 次点击
    这是一个创建于 2689 天前的主题,其中的信息可能已经有所发展或是发生改变。
    刚才一个高中同学发给我一个证件照,说是要换成白色,还说什么你们学计算机的不是很容易么。
    当时我一看,这™不是画图的么,我让他找个会 ps 的去弄吧,然后人家就不乐意了,一顿埋汰,当时我就生气了,欺负我们程序猿不会 PS 这是,啪啪啪写了 10 行 Python 直接给换成白底了,还告诉他,这尼玛精确到像素级别的。

    不过之前还好,都是找修电脑,现在直接 P 图了,V 友们这些同学怎么破,大家怎么看好久不联系,一找你就修电脑屁图的?
    56 条回复    2017-07-16 07:28:17 +08:00
    Keyblade
        1
    Keyblade  
       2017-07-14 14:57:48 +08:00   ❤️ 2
    “你们学计算机的不是很容易么”

    说完这句话可能我就关了对话框了
    lixile
        2
    lixile  
       2017-07-14 15:00:22 +08:00
    你有用的的时候说一句你干***不是很容易的吗
    没用的时候爱理不理
    所以 不会 不知道 不懂 出门找淘宝 谢谢
    binjoo
        3
    binjoo  
       2017-07-14 15:02:10 +08:00
    这种情况我一般都会问他们是做什么的。
    LosLord
        4
    LosLord  
       2017-07-14 15:03:05 +08:00 via Android
    背景的杂色怎么处理的
    bluecrow
        5
    bluecrow  
       2017-07-14 15:04:51 +08:00 via iPhone
    不搭理。
    Tuisku
        6
    Tuisku  
       2017-07-14 15:26:20 +08:00   ❤️ 2
    “我每天工资按 600 算,工作 8 小时,时薪 75,给你做这个图大概需要 10 分钟。国际惯例不满一小时按一小时计价,支付宝还是微信?”
    CEBBCAT
        7
    CEBBCAT  
       2017-07-14 15:45:45 +08:00
    下次标题最好加上引号,不然我在外边看到还以为是求助帖
    liuhao2050qq
        8
    liuhao2050qq  
    OP
       2017-07-14 15:46:15 +08:00
    @Keyblade @lixile @LosLord @binjoo @bluecrow @Tuisku 总觉得做人还是要厚道些,能帮的还是要帮,但这 P 图都出于不能帮的边界了,还不依不饶的,真是心累。。。
    ScotGu
        9
    ScotGu  
       2017-07-14 15:46:25 +08:00
    @Tuisku 何必呢, 肛起来对方拿 75 元恶心你一小时怎么办。
    所以直接动手吧。 (笑
    CEBBCAT
        10
    CEBBCAT  
       2017-07-14 15:46:39 +08:00
    @CEBBCAT #7 好像语气很生硬……其实我是建议一下
    liuhao2050qq
        11
    liuhao2050qq  
    OP
       2017-07-14 15:47:54 +08:00
    @LosLord 他给的蓝底,黑衣服,白衬衫,比较好处理,适当调下色域就行。
    CEBBCAT
        12
    CEBBCAT  
       2017-07-14 15:47:54 +08:00
    所以楼主能不能开下源?
    liuhao2050qq
        13
    liuhao2050qq  
    OP
       2017-07-14 15:51:21 +08:00   ❤️ 1
    from PIL import Image
    if __name__ == "__main__":
    im = Image.open("mr.zhang.jpg")
    x, y = im.size
    for i in range(x):
    for j in range(y):
    r, g, b = im.getpixel((i,j))
    if (20< r < 180) and (80< g < 250) and (180< b< 265):
    r, g, b = 255, 255, 255
    im.putpixel((i, j), (r, g, b))
    im.show()

    @CEBBCAT
    coderluan
        14
    coderluan  
       2017-07-14 15:52:42 +08:00
    何必讨好不尊重自己的陌路人,follow your heart,怂。
    lixile
        15
    lixile  
       2017-07-14 15:53:34 +08:00
    @liuhao2050qq #8 哎 一言难尽 还不是活生生被恶心出开始用这种态度对待人
    Tuisku
        16
    Tuisku  
       2017-07-14 15:54:40 +08:00
    @ScotGu #9
    说的有道理啊 233,还是动手吧哈哈哈
    SkyKoo
        17
    SkyKoo  
       2017-07-14 15:55:13 +08:00
    搞过,美图秀秀就可以,还挺简单的
    lneoi
        19
    lneoi  
       2017-07-14 15:56:22 +08:00
    我还以为会是抄起 PS 修改,结果祭出 python 很 6
    liuhao2050qq
        20
    liuhao2050qq  
    OP
       2017-07-14 15:59:28 +08:00
    @coderluan 哈哈哈,我一直很怂,主要是得罪人自己心里也不高兴。
    CEBBCAT
        21
    CEBBCAT  
       2017-07-14 16:01:12 +08:00
    @liuhao2050qq #13
    @liuhao2050qq #18
    WoW 谢谢谢谢,太用心了
    liuhao2050qq
        22
    liuhao2050qq  
    OP
       2017-07-14 16:03:16 +08:00
    总觉得没缩进不叫码,无高亮不编程 @CEBBCAT
    CEBBCAT
        23
    CEBBCAT  
       2017-07-14 16:05:28 +08:00
    @liuhao2050qq #22
    01001000
    designer
        24
    designer  
       2017-07-14 16:08:52 +08:00 via iPhone
    介绍给我吧,收他 80,再给你 400 红包!
    designer
        25
    designer  
       2017-07-14 16:09:10 +08:00 via iPhone
    8 少了个 0 😢
    liuhao2050qq
        26
    liuhao2050qq  
    OP
       2017-07-14 16:11:25 +08:00
    @designer 这个办法好。。。。我喜欢。。。
    nfroot
        27
    nfroot  
       2017-07-14 16:34:25 +08:00
    人生就是这么让人无语,因为没办法和每个人保持好关系,却又心甘情愿的免费劳动。
    Chingim
        28
    Chingim  
       2017-07-14 16:46:38 +08:00 via Android
    为什么 r,g,b 的判定范围差距这么大呢?
    SingeeKing
        29
    SingeeKing  
       2017-07-14 16:47:54 +08:00
    讲真,程序员不是应该或多或少会点 ps 吗😂

    选择 - 色彩范围 - 填充。。
    liuhao2050qq
        30
    liuhao2050qq  
    OP
       2017-07-14 16:57:18 +08:00
    @Chingim 相片质量不是很高,有 ps 痕迹,慢慢调的
    liuhao2050qq
        31
    liuhao2050qq  
    OP
       2017-07-14 16:59:54 +08:00
    @SingeeKing 谁实话,PS 其实也会一点,但是没在笔记本上装。。
    bearqq
        32
    bearqq  
       2017-07-14 17:01:24 +08:00 via Android
    有色背景抠图是比较麻烦的,特别头发区域,背景色会渗透到黑色上,抠图后要么头发上有颜色,要么头发损失一部分
    ps 的颜色范围可以较好解决这一问题
    aksoft
        33
    aksoft  
       2017-07-14 17:16:08 +08:00
    不会写代码的设计师不是好朋友
    xshwy
        34
    xshwy  
       2017-07-14 17:38:05 +08:00
    「啊这个是得搞设计的弄,我真不会,你找 xxx 吧,他是大神」
    geelaw
        35
    geelaw  
       2017-07-14 17:40:00 +08:00 via iPhone
    但是为什么要写代码呢……扔进 PowerPoint 删除背景,再在下面放个其他颜色矩形另存为图片不是更简单么
    ty89
        36
    ty89  
       2017-07-14 18:02:31 +08:00   ❤️ 1
    找修图
    找盗别人 qq/微信
    找做 ppt
    找修手机
    找做数学题

    ...

    这都是程序员的日常
    liuhao2050qq
        37
    liuhao2050qq  
    OP
       2017-07-14 18:08:20 +08:00
    @geelaw 然而并不会,事实上我还是第一次听说 PowerPoint 可以去背景。。。。、

    @ty89 戳中泪点
    liuhao2050qq
        38
    liuhao2050qq  
    OP
       2017-07-14 18:10:17 +08:00
    @bearqq Get
    joeke
        39
    joeke  
       2017-07-14 19:06:07 +08:00
    我老舅经常叫我改 PPT word excel 什么的,这不是很简单的额吗,,我硬着头皮 简单的给他弄一下。。。。。
    SharkIng
        40
    SharkIng  
       2017-07-14 19:21:16 +08:00 via iPhone
    最近家里亲戚来,也是类似情况,只不过是修手机
    SingeeKing
        41
    SingeeKing  
       2017-07-14 19:41:29 +08:00
    @ty89 数学题什么情况😂
    bluecrow
        42
    bluecrow  
       2017-07-14 20:31:06 +08:00
    @joeke 可能以为对大学生来说都是小菜。
    sola97
        43
    sola97  
       2017-07-14 20:54:52 +08:00
    Adobe 全家桶装起来,把技能点点满
    gulangyu
        44
    gulangyu  
       2017-07-14 23:04:15 +08:00
    @liuhao2050qq 找了张蓝底妹子证件照试了下你分享的代码,怎么没啥反应

    原图: https://i.loli.net/2017/07/14/5968dd35d84de.jpg

    py 后:https://i.loli.net/2017/07/14/5968dcffeab84.png
    580a388da131
        45
    580a388da131  
       2017-07-15 00:10:31 +08:00
    然后楼主用事实证明了确实很容易?
    0asis
        46
    0asis  
       2017-07-15 00:29:54 +08:00 via iPhone
    挑个刺,用 cv2 会不会更简单?
    Actrace
        47
    Actrace  
       2017-07-15 02:06:38 +08:00
    说不定是楼主女友找他帮忙。。
    Ultraman
        48
    Ultraman  
       2017-07-15 03:14:25 +08:00 via Android
    有同学还碰到过让给小孩起名字😏
    hzcxdgioa
        49
    hzcxdgioa  
       2017-07-15 07:24:31 +08:00 via Android
    你可以这样说:
    现在程序员一大把,你在家附近街边随便抓个程序员现场帮你做就可以了,确实太容易了,我真不稀罕干这事。
    这种事我刚入行的时候,像我一样的小白都是抢着干的,你找他们准没错。
    woshinide300yuan
        50
    woshinide300yuan  
       2017-07-15 08:03:40 +08:00
    拉黑呗,寻思啥呢。好久不联系外加能有这种思维模式的人,你指望和他共度余生吗。
    Tunar
        51
    Tunar  
       2017-07-15 08:36:04 +08:00 via Android
    我同学。。。😒大哥你一个 windows 用户出问题老问我干嘛啊。。我已经两年不用 windows 了,,偶尔跑个虚拟机而已。。你的问题我真的解决不了啊。。
    pwcong
        52
    pwcong  
       2017-07-15 08:41:22 +08:00
    @Tuisku 大佬时薪比我日薪还高
    NoAnyLove
        53
    NoAnyLove  
       2017-07-15 12:53:02 +08:00   ❤️ 1
    @gulangyu 调整一下颜色区间就好了

    ```python
    from PIL import Image
    if __name__ == "__main__":
    im = Image.open("mr.zhang.jpg")
    x, y = im.size
    for i in range(x):
    for j in range(y):
    r, g, b = im.getpixel((i,j))
    if (0 <= r < 50) and (90 <= g <= 155) and (130 <= b<= 230):
    r, g, b = 255, 255, 255
    im.putpixel((i, j), (r, g, b))
    im.show()
    ```
    gulangyu
        54
    gulangyu  
       2017-07-15 16:54:43 +08:00
    @NoAnyLove 谢谢回复!想问下你是用什么方法来确定 r, g, b 三者的范围的?如果把 0 <= r 这里的等号去掉,为什么图像就花了,这个等号似乎很重要。
    NoAnyLove
        55
    NoAnyLove  
       2017-07-16 03:51:25 +08:00   ❤️ 1
    @gulangyu 把图片打开,随便找个取色器,大概的在背景上扫一下,记录下 RGB 大概的区间。如果处理之后还有蓝色没有被去掉,再根据处理后的图片中没有去掉的部分,继续调整颜色区间。说实话,这个方法其实比较蠢,但是优点是简单容易理解;用 OpenCV 来做效果更好,但是更复杂, 需要有一些基础知识。取等号是因为蓝色背景中有些像素点的 R 就是 0。
    gulangyu
        56
    gulangyu  
       2017-07-16 07:28:17 +08:00 via Android
    @NoAnyLove 谢谢回复。python 第一次接触图像处理,我用取色器这样扫,不管怎么调总有一部分去不掉。我再补补像素知识,试试 opencv 看看 。◕‿◕。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2806 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 07:30 · PVG 15:30 · LAX 23:30 · JFK 02:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.