- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在使用 OpenCV 和 Python Tkinter。我想将 OpenCV 的视频帧获取到 Tkinter 标签。我使用了线程,因为我有两个循环。 (我从 this 得到了指示)
当我尝试运行代码时,它向我显示,
Press any key to continue . . . Exception in thread Thread-2:Traceback (mostrecent call last):File "C:\Python27\lib\threading.py", line 808, in __bootstrap_inner self.run() File "C:\Python27\lib\threading.py", line 761, in run self.__target(*self.__args, **self.__kwargs)File "c:\users\user1\documents\visual studio 2013\Projects\defTstWindow\defT stWindow\defTstWindow.py", line 26, in makeGUI img = Image.fromarray(cv2image) AttributeError: class Image has no attribute 'fromarray'
我已经尝试使用 Python 类。我遇到了同样的错误。
但是,如果我在一个函数中运行所有内容(如 this 的第一个答案),它会正常工作。
我的代码有什么问题?
现在我有四个 python 模块。
1.Support.py
import cv2
global frame
frame=None
2.CamHandler.py
import cv2
import numpy as np
import Support
cam=cv2.VideoCapture(0)
def getFrame():
while 1:
_,frm=cam.read()
#cv2.imshow('frm',frm)
Support.frame=frm
if cv2.waitKey(1) & 0xFF == ord('q'):
cv2.destroyAllWindows()
break
3.defTstWindow.py
import sys
import cv2
import Image, ImageTk
from Tkinter import *
import Support
def makeGUI():
top=Tk()
top.geometry("600x449+650+151")
top.title("Test Window")
top.configure(background="#d9d9d9")
lblFrame = Label(top)
lblFrame.place(relx=0.03, rely=0.04, height=411, width=544)
lblFrame.configure(background="#d9d9d9")
lblFrame.configure(disabledforeground="#a3a3a3")
lblFrame.configure(foreground="#000000")
lblFrame.configure(text='''Label''')
lblFrame.configure(width=544)
cv2image = cv2.cvtColor(Support.frame, cv2.COLOR_BGR2RGBA)
img = Image.fromarray(cv2image)
imgtk = ImageTk.PhotoImage(image=img)
lblFrame.imgtk = imgtk
lblFrame.configure(image=imgtk)
#lblFrame.after(10, show_frame)
top.mainloop()
4.main.py
import CamHandler
import defTstWindow
import threading
import time
threading.Thread(target=CamHandler.getFrame).start()
time.sleep(1)
threading.Thread(target=defTstWindow.makeGUI).start()
最佳答案
Tkinter
命名空间包含类 Image
,所以当您编写
from Tkinter import *
您将 Image
的定义替换为来自 Tkinter
的定义。
import *
可能很方便,尤其是在交互式 shell 中工作时,但不建议将其用于脚本和更大的程序,原因正是这个问题中所展示的。将该导入更改为
from Tkinter import Tk, Label
(将您需要的任何其他名称添加到该导入语句中。)
关于python - 类图像没有属性 'fromarray',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40724661/
你能比较一下属性吗 我想禁用文本框“txtName”。有两种方式 使用javascript,txtName.disabled = true 使用 ASP.NET, 哪种方法更好,为什么? 最佳答案 我
Count 属性 返回一个集合或 Dictionary 对象包含的项目数。只读。 object.Count object 可以是“应用于”列表中列出的任何集合或对
CompareMode 属性 设置并返回在 Dictionary 对象中比较字符串关键字的比较模式。 object.CompareMode[ = compare] 参数
Column 属性 只读属性,返回 TextStream 文件中当前字符位置的列号。 object.Column object 通常是 TextStream 对象的名称。
AvailableSpace 属性 返回指定的驱动器或网络共享对于用户的可用空间大小。 object.AvailableSpace object 应为 Drive 
Attributes 属性 设置或返回文件或文件夹的属性。可读写或只读(与属性有关)。 object.Attributes [= newattributes] 参数 object
AtEndOfStream 属性 如果文件指针位于 TextStream 文件末,则返回 True;否则如果不为只读则返回 False。 object.A
AtEndOfLine 属性 TextStream 文件中,如果文件指针指向行末标记,就返回 True;否则如果不是只读则返回 False。 object.AtEn
RootFolder 属性 返回一个 Folder 对象,表示指定驱动器的根文件夹。只读。 object.RootFolder object 应为 Dr
Path 属性 返回指定文件、文件夹或驱动器的路径。 object.Path object 应为 File、Folder 或 Drive 对象的名称。 说明 对于驱动器,路径不包含根目录。
ParentFolder 属性 返回指定文件或文件夹的父文件夹。只读。 object.ParentFolder object 应为 File 或 Folder 对象的名称。 说明 以下代码
Name 属性 设置或返回指定的文件或文件夹的名称。可读写。 object.Name [= newname] 参数 object 必选项。应为 File 或&
Line 属性 只读属性,返回 TextStream 文件中的当前行号。 object.Line object 通常是 TextStream 对象的名称。 说明 文件刚
Key 属性 在 Dictionary 对象中设置 key。 object.Key(key) = newkey 参数 object 必选项。通常是 Dictionary 
Item 属性 设置或返回 Dictionary 对象中指定的 key 对应的 item,或返回集合中基于指定的 key 的&
IsRootFolder 属性 如果指定的文件夹是根文件夹,返回 True;否则返回 False。 object.IsRootFolder object 应为&n
IsReady 属性 如果指定的驱动器就绪,返回 True;否则返回 False。 object.IsReady object 应为 Drive&nbs
FreeSpace 属性 返回指定的驱动器或网络共享对于用户的可用空间大小。只读。 object.FreeSpace object 应为 Drive 对象的名称。
FileSystem 属性 返回指定的驱动器使用的文件系统的类型。 object.FileSystem object 应为 Drive 对象的名称。 说明 可
Files 属性 返回由指定文件夹中所有 File 对象(包括隐藏文件和系统文件)组成的 Files 集合。 object.Files object&n
我是一名优秀的程序员,十分优秀!