我试图实现的是,每当我获得相同的RGB值时,像素坐标就会存储在一个列表中,每个不同的RGB值都会存储在一个列表中

代码:


from PIL import Image,ImageOps
file_name = "test.png"
og_image = Image.open(file_name)
gray_image = ImageOps.grayscale(og_image)
gray_scalefile = f"{file_name[:-3]}gray.png"
gray_image.save(gray_scalefile)
img = Image.open(gray_scalefile).convert('RGB')
pixels = img.load()
width, height = img.size
for x in range(width):
    for y in range(height):
        r,g,b = pixels[x,y]
        print(x, y, f'{r},{g},{b}')

此代码使用PIL将Test.png转换为灰度图像,然后获取所有像素及其RGB值.我想获取相同RGB值中的所有像素坐标,并将它们存储在一起,以获得每个RGB值.例如,80,40 255 0 0 和70,20 255 0我希望这些放在一个列表中,因为它们具有相同的RGB值

推荐答案

您只需通过它们的r,g,b个值作为关键字来收集所有坐标:

from collections import defaultdict

pixels_by_colour = defaultdict(list)
for x in range(width):
    for y in range(height):
        r,g,b = pixels[x,y]
        pixels_by_colour[(r,g,b)].append((x,y))

现在,如果您认为需要 colored颜色 (r,g,b)的所有坐标(确实有一些):

coords = pixels_by_colour[(r,g,b)]
print(coords)

Python相关问答推荐

Pandas 有条件轮班操作

如何根据参数推断对象的返回类型?

大小为M的第N位_计数(或人口计数)的公式

无法使用requests或Selenium抓取一个href链接

如何使用它?

如何在给定的条件下使numpy数组的计算速度最快?

PyQt5,如何使每个对象的 colored颜色 不同?'

海上重叠直方图

手动设置seborn/matplotlib散点图连续变量图例中显示的值

跳过嵌套JSON中的级别并转换为Pandas Rame

Python避免mypy在相互引用中从另一个类重定义类时失败

如何删除重复的文字翻拍?

没有内置pip模块的Python3.11--S在做什么?

多个矩阵的张量积

为什么在Python中00是一个有效的整数?

Matplotlib中的曲线箭头样式

如何定义一个将类型与接收该类型的参数的可调用进行映射的字典?

大Pandas 每月重新抽样200万只和300万只

使用pyopencl、ArrayFire或另一个Python OpenCL库制作基于欧几里得距离的掩模

查找系统上安装的所有Python