我尝试将纹理放入Image中,但出现此错误。似乎python无法从Image获得此属性,但应该如此。对不起,英语不好
这是我的kv.py文件
import cv2
import kivy
import numpy as np
from kivy.app import App
from kivy.core.image import Texture
from kivy.uix.widget import Widget
from kivy.properties import ObjectProperty
from kivy.clock import Clock
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.gridlayout import GridLayout
import SliderTest
class Wrapper(BoxLayout):
def __init__(self, **kwargs):
super(Wrapper, self).__init__(**kwargs)
self.cam1 = ObjectProperty(None)
class CamMain(App):
def build(self):
Clock.schedule_interval(self.update, 1.0 / 33.0)
self.capture = cv2.VideoCapture(0)
return Wrapper()
def update(self, dt):
_, frame = self.capture.read()
texture = Texture.create(size=(frame.shape[1], frame.shape[0]), colorfmt='bgr')
result = cv2.flip(frame, 0)
texture.blit_buffer(result.tostring(), colorfmt='bgr', bufferfmt='ubyte')
App.get_running_app().root.cam1.texture = texture
if __name__ == "__main__":
CamMain().run()
这是我的CamMain.kv文件
<Wrapper>:
hue: hue
saturation: saturation
value:value
cam1:cam1
orientation: 'vertical'
GridLayout:
cols:2
BoxLayout:
orientation: 'vertical'
spacing:20
padding:25
Image:
id:cam1
size: self.texture_size
App.get_running_app()。root.cam1.texture =纹理 AttributeError:“ kivy.properties.ObjectProperty”对象没有属性“ texture”
答案 0 :(得分:0)
我只需要将cam1 = ObjectProperty(None)移到 init
之外