Python:图像显示中的像素值?

2024-04-23 07:28:42 发布

您现在位置:Python中文网/ 问答频道 /正文

使用任何numpy、scikit图像库,我可以轻松地将图像加载并显示为ndarray。但是,我想要某种显示方式,我可以在图像周围移动光标,查看当前像素的索引及其灰度(或RGB)值,例如:(213,47:178)或(213,47:122,10205)-这些值当然会随着光标的移动而不断变化。在

有没有一个简单的方法可以做到这一点?噢:我用的是Linux,但我的学生会用Windows,所以我希望有一个跨平台的解决方案。在


Tags: 方法图像numpylinuxwindows跨平台rgb像素
1条回答
网友
1楼 · 发布于 2024-04-23 07:28:42

我使用tkinter来显示,PIL来读取任何类型的图像。这是一个Veeeryyy缓慢的解决方案。在

def pil2tkinter_image(img_path, master = None, *args, **kw):
    import tkinter, PIL.Image
    img = PIL.Image.open(img_path)
    x0, y0, width, height = img.getbbox()
    l = []
    for y in range(y0, height):
        l.append('{')
        for x in range(x0, width):
            l.append('#%02X%02X%02X' % img.getpixel((x, y))[:3])
        l.append('}')
    data = ' '.join(l) # slow part
    pi = tkinter.PhotoImage(master = master, *args, **kw)
    pi.put(data, (0,0))
    return pi

函数pil2tkinter_image获取任何类型图像的路径,png、bmp、jpg、gif,并从中创建一个tkinter PhotoImage。在

您可以将此图像嵌入到tkinter小部件中,并使用鼠标事件读取像素值。在

相关问题 更多 >