Передать переменную в модуле Python

Я работаю над проектом обработки изображений с помощью Python. Мне нужен хороший графический интерфейс, поэтому я создал графический интерфейс с помощью PAGE . Теперь у меня есть три файла .py:

  1. PAGE созданный файл класса GUI.
  2. PAGE создан файл поддержки GUI.
  3. Мой файл обработки изображений.

Созданный PAGE файл поддержки графического интерфейса определяет глобальные значения для хранения значений компонентов GUI.

  • Как сделать чат, как пользовательский интерфейс, используя Python Urwid?
  • Как вызвать элементы GUI в разных потоках Qt?
  • Ошибка импорта модуля Pyinstaller QtCore
  • PyQt QThread MultiThreading не работает
  • Как запустить селен в Xvfb?
  • Как загрузить детей из файла .ui в PySide?
  • Создана PAGE GUISupport.py:

    #! /usr/bin/env python # # Support module generated by PAGE version 4.8.6 # In conjunction with Tcl version 8.6 # Nov 16, 2016 07:58:07 AM import sys try: from Tkinter import * except ImportError: from tkinter import * try: import ttk py3 = 0 except ImportError: import tkinter.ttk as ttk py3 = 1 global frm #this is the global variable frm=None def init(top, gui, *args, **kwargs): global w, top_level, root w = gui top_level = top root = top def destroy_window(): # Function which closes the window. global top_level top_level.destroy() top_level = None if __name__ == '__main__': import GUI GUI.vp_start_gui() 

    PAGE сгенерировал GUI.py. Я добавил функцию show_frame () отдельно. Согласно этой информации.

     #! /usr/bin/env python # # GUI module generated by PAGE version 4.8.6 # In conjunction with Tcl version 8.6 # Nov 16, 2016 07:58:02 AM import sys import Tkinter as tk import Image, ImageTk try: from Tkinter import * except ImportError: from tkinter import * try: import ttk py3 = 0 except ImportError: import tkinter.ttk as ttk py3 = 1 import GUISupport def vp_start_gui(): '''Starting point when module is the main routine.''' global val, w, root root = Tk() top = MainForm (root) GUISupport.init(root, top) root.mainloop() w = None def create_MainForm(root, *args, **kwargs): '''Starting point when module is imported by another program.''' global w, w_win, rt rt = root w = Toplevel (root) top = MainForm (w) top.show_frame() GUISupport.init(w, top, *args, **kwargs) return (w, top) def destroy_MainForm(): global w w.destroy() w = None class MainForm: def __init__(self, top=None): '''This class configures and populates the toplevel window. top is the toplevel containing window.''' self._bgcolor = '#d9d9d9' # X11 color: 'gray85' self._fgcolor = '#000000' # X11 color: 'black' self._compcolor = '#d9d9d9' # X11 color: 'gray85' self._ana1color = '#d9d9d9' # X11 color: 'gray85' self._ana2color = '#d9d9d9' # X11 color: 'gray85' top.geometry("850x500+318+153") top.title("MainForm") top.configure(background="#d9d9d9") self.lblFrame = Label(top) self.lblFrame.place(relx=0.01, rely=0.02, height=471, width=764) self.lblFrame.configure(background="#d9d9d9") self.lblFrame.configure(disabledforeground="#a3a3a3") self.lblFrame.configure(foreground="#000000") self.lblFrame.configure(text='''Label''') self.lblFrame.configure(width=764) def show_frame(self): img = Image.fromarray(GUISupport.frm) imgtk = ImageTk.PhotoImage(image=img) self.lblFrame.imgtk = imgtk self.lblFrame.configure(image=imgtk) self.lblFrame.after(10, show_frame) if __name__ == '__main__': create_MainForm(Tk()) на #! /usr/bin/env python # # GUI module generated by PAGE version 4.8.6 # In conjunction with Tcl version 8.6 # Nov 16, 2016 07:58:02 AM import sys import Tkinter as tk import Image, ImageTk try: from Tkinter import * except ImportError: from tkinter import * try: import ttk py3 = 0 except ImportError: import tkinter.ttk as ttk py3 = 1 import GUISupport def vp_start_gui(): '''Starting point when module is the main routine.''' global val, w, root root = Tk() top = MainForm (root) GUISupport.init(root, top) root.mainloop() w = None def create_MainForm(root, *args, **kwargs): '''Starting point when module is imported by another program.''' global w, w_win, rt rt = root w = Toplevel (root) top = MainForm (w) top.show_frame() GUISupport.init(w, top, *args, **kwargs) return (w, top) def destroy_MainForm(): global w w.destroy() w = None class MainForm: def __init__(self, top=None): '''This class configures and populates the toplevel window. top is the toplevel containing window.''' self._bgcolor = '#d9d9d9' # X11 color: 'gray85' self._fgcolor = '#000000' # X11 color: 'black' self._compcolor = '#d9d9d9' # X11 color: 'gray85' self._ana1color = '#d9d9d9' # X11 color: 'gray85' self._ana2color = '#d9d9d9' # X11 color: 'gray85' top.geometry("850x500+318+153") top.title("MainForm") top.configure(background="#d9d9d9") self.lblFrame = Label(top) self.lblFrame.place(relx=0.01, rely=0.02, height=471, width=764) self.lblFrame.configure(background="#d9d9d9") self.lblFrame.configure(disabledforeground="#a3a3a3") self.lblFrame.configure(foreground="#000000") self.lblFrame.configure(text='''Label''') self.lblFrame.configure(width=764) def show_frame(self): img = Image.fromarray(GUISupport.frm) imgtk = ImageTk.PhotoImage(image=img) self.lblFrame.imgtk = imgtk self.lblFrame.configure(image=imgtk) self.lblFrame.after(10, show_frame) if __name__ == '__main__': create_MainForm(Tk()) 

    Это мой код обработки изображений, написанный с использованием OpenCV

     import numpy as np import cv2 import GUISupport as guis cam=cv2.VideoCapture(0) while 1: _,f=cam.read() cv2.imshow('frame',f) guis.frm=cv2.cvtColor(f, cv2.COLOR_BGR2RGBA) #this is the variable passed using GUISupport.py if cv2.waitKey(1) & 0xFF == ord('q'): cv2.destroyAllWindows() cam.release() break 

    Я запустил этот код. Но, я получил эту ошибку:

     File "C:\Users\user\Documents\Visual Studio 2013\Projects\testforCAmFeed\testforCAmFeed\GUI.py", line 74, in show_frame img = Image.fromarray(GUISupport.frm) AttributeError: class Image has no attribute 'fromarray' 

    Мне нужно передать мое видео и другую переменную в модуль GUI и передать данные контроллера GUI tkinter в модуль обработки изображений.

    Как это сделать?

  • OpenCV и python / virtualenv?
  • Как оптимизировать эту итерацию изображения в numpy?
  • opencv 3.0.0-dev привязки python не работают должным образом
  • Установка OpenCV в Windows 7 для Python 2.7
  • Травление cv2.KeyPoint вызывает PicklingError
  • OpenCV дает неправильный цвет цветным изображениям при загрузке
  • Python - лучший язык программирования в мире.