【问题标题】:Python: Pixel values in image display?Python:图像显示中的像素值?
【发布时间】:2013-11-12 06:38:15
【问题描述】:

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

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

【问题讨论】:

标签: python image numpy pixels


【解决方案1】:

我使用tkinter 进行显示,PIL 用于读取任何图像类型。这是一个非常缓慢的解决方案。

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 小部件中,并使用鼠标事件来读取像素值。

【讨论】:

    猜你喜欢
    • 2017-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多