【问题标题】:Loop through all pixels of 2 images and replace the black pixels with white循环遍历 2 个图像的所有像素并将黑色像素替换为白色
【发布时间】:2016-09-20 01:24:41
【问题描述】:

我有 2 个位于同一位置的图像,它们都以类似的方式创建,大小均为 7,221 x 119 像素。

我想遍历两个图像的所有像素。如果第一张图片的像素是黑色的,第二张图片的像素也是黑色的,则将其变为白色,否则,没有变化。

我如何用 python 做到这一点?

【问题讨论】:

    标签: python image


    【解决方案1】:

    我建议使用 PIL 库的分支 Pillow 库 (https://python-pillow.org/)。

    以下是 Pillow 文档中的内容:http://pillow.readthedocs.io/en/3.1.x/reference/PixelAccess.html

    还有几个 Stackoverflow 问题可能会对您有所帮助:

    Is it possible to change the color of one individual pixel in Python?

    Changing pixel color Python

    我猜你只需要打开两个图像,循环遍历 rach 图像的每个像素,比较像素,比较像素,然后在必要时替换。

    【讨论】:

    • 是的,我明白了。感谢提示
    【解决方案2】:

    这应该与您正在寻找的内容非常接近。

    from PIL import Image
    from PIL import ImageFilter
    
    im            = Image.open('a.png')
    imb           = Image.open('b.png')
    pix           = im.load()
    width, height = im.size
    for w in xrange(width):
        for h in xrange(height):
            r,g,b,a = pix[(w,h)]
            rb, gb, bb, ab = pix[(w,h)]
            if not (r+g+b+rb+gb+bb): #all values 0
                pix[w,h] = (255,255,255,255)
    im.save('test','BMP')
    

    【讨论】:

    • 我刚刚写完代码来完成这项工作。但感谢您的帮助。我将尝试修改您那里的代码,看看它是否运行得更快。谢谢
    猜你喜欢
    • 2018-09-28
    • 1970-01-01
    • 2015-05-05
    • 1970-01-01
    • 2019-12-13
    • 1970-01-01
    • 2019-03-28
    • 1970-01-01
    • 2015-02-04
    相关资源
    最近更新 更多