TKinter 在显示的图像上放置了一个奇怪的白框

问题描述 投票:0回答:1

我正在使用 TKinter 开发一个 GUI,允许用户交互式设置用于处理某些图像的参数。 GUI 显示正在分析的图像,以便用户可以看到更改参数如何改变图像处理的结果。在意识到我用来处理图像的方法性能不佳后,我决定创建另一个可用于调试该方法的 GUI。此调试 GUI 将显示两个图像 - 正在处理的原始图像,以及将用于隔离原始图像上的功能的二进制掩码。开发这个 GUI 后,我注意到在显示图像时,图像中心现在有一个奇怪的白框,而原始图像上没有。

以下是例子来说明这个问题:

在TK标签上显示图像的原始代码:

def display_image(img):
    img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
    img = Image.fromarray(img)
    img = ImageTk.PhotoImage(image=img)
    photo_label.imgtk = img
    photo_label.config(image=img)

生成的图像(仅裁剪以显示发生问题的中心附近的区域): 它应该是什么样子

用于在调试 GUI 上显示图像的代码,允许选择是在原始照片标签上还是在二进制蒙版标签上显示图像:

def display_image(img, window = "photo"):
    img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
    img = Image.fromarray(img)
    img = ImageTk.PhotoImage(image=img)
    if window == "photo":
        photo_label.imgtk = img
        photo_label.config(image=img)
    elif window == "mask":
        mask_label.imgtk = img
        mask_label.config(image=img)

有问题的结果图像:

问题上带有新白色矩形的图像

有谁知道为什么会发生这种情况以及我可以做些什么来摆脱它吗?

python tkinter python-imaging-library
1个回答
0
投票

对于遇到此问题的任何人:我意识到我不小心将用于显示每个图像的标签放置在同一位置(使用网格放置标签并无意中将它们放在同一个单元格中) - 一旦我意识到这一点并修复它问题就消失了。

© www.soinside.com 2019 - 2024. All rights reserved.