【问题标题】:how can i get no of red pixels and no of black pixels in PIL image如何在 PIL 图像中获得没有红色像素和没有黑色像素
【发布时间】:2018-02-22 12:41:03
【问题描述】:
from PIL import ImageGrab
pil_img=ImageGrab.grab([0,0,1000,1000])

现在我想在两个单独的变量中没有红色像素和黑色像素。那么我应该如何继续 pil_img

【问题讨论】:

    标签: python python-2.7 python-3.x python-imaging-library pillow


    【解决方案1】:

    使用pil_img.getpixel((x, y)),或pil_img[x, y]。

    【讨论】:

    • 如果您支持这个问题将不胜感激。我失去了提问的特权。:-(
    【解决方案2】:

    如果你不在所有像素上自己写一个循环,它会快得多。

    import os.path
    from collections import Counter
    
    from PIL import Image
    
    path_to_file = os.path.join('..', '..', 'img', '9BLW9.jpg')
    
    # Count the number of occurrences per pixel value for the entire image
    img = Image.open(path_to_file)
    pixels = img.getdata()
    print(Counter(pixels))
    
    # Count the number of occurrences per pixel value for a subimage in the image
    img = img.crop((100, 100, 200, 200))
    pixels = img.getdata()
    print(Counter(pixels))
    

    结果:

    Counter({(248, 8, 9): 1002251, (0, 0, 0): 735408, (248, 8, 11): 8700, (245, 9, 9): 7200, ...)
    Counter({(0, 0, 0): 5992, (248, 8, 9): 1639, (3, 0, 0): 33, (0, 6, 0): 23, ...)
    

    您有两个以上的像素值是由于 JPG 伪影造成的。您可以编写一些自定义逻辑来查看像素是否更像黑色或红色,并将它们也算作这些。

    【讨论】:

    • 你能告诉我你是如何看到我的问题的吗?最初它的浏览量不超过 10 到 15 次
    • 我过滤了带有标签 Python Image Library 的问题,并在向下滚动后在列表中看到了您的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-28
    • 2022-12-19
    • 2020-02-14
    • 1970-01-01
    • 1970-01-01
    • 2015-05-05
    相关资源
    最近更新 更多