gpt4 book ai didi

Python,在标签中的 Tkinter 中显示 openCv 图像

转载 作者:太空宇宙 更新时间:2023-11-03 21:33:44 24 4
gpt4 key购买 nike

我正在尝试在 Tkinter 标签中显示 openCV 图像。当我从文件中加载图像时:

img = ImageTk.PhotoImage("asd.png")

一切都很好。但是当我改变它时,我得到的只是空的、黑色的图像,其他任何东西。这是示例代码:

import tkinter as tk
from tkinter import *

import cv2
from skimage import io
from PIL import Image, ImageTk
from skimage.color import rgb2gray


def make_label(master, x, y, w, h, img, *args, **kwargs):
f = Frame(master, height = h, width = w)
f.pack_propagate(0)
f.place(x = x, y = y)
label = Label(f, image = img, *args, **kwargs)
label.pack(fill = BOTH, expand = 1)
return label


if __name__ == '__main__':
root = tk.Tk()
frame = tk.Frame(root, width=400, height=600, background='white')
frame.pack_propagate(0)
frame.pack()
image = rgb2gray(io.imread("asd.png"))

image2 = Image.fromarray(image)
img = ImageTk.PhotoImage(image2)
make_label(root, 0, 0, 100, 100, img)
root.mainloop()

请帮忙

最佳答案

我认为问题在于 rgb2gray(io.imread("asd.png")) 给出的灰度值在 0 到 1 之间,而 PIL 期望值在 0 到 255 之间,所以Image.fromarray(image) 的结果是一个黑色方 block ,因为所有值都小于 1。

因此 image2 = Image.fromarray(image*255) 应该给出预期的图像。

关于Python,在标签中的 Tkinter 中显示 openCv 图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43979923/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com