I'm trying to make apk file from using python. This code is using cv2.VideoCapture(0) to make phone camera application. Here's my code
# Import kivy dependencies first
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
# Import kivy UX components
from kivy.uix.image import Image
# Import other kivy stuff
from kivy.clock import Clock
from kivy.graphics.texture import Texture
# Import other dependencies
import cv2
class CamApp(App):
def build(self):
self.vid = cv2.VideoCapture(0)
self.web_cam = Image()
layout = BoxLayout()
layout.add_widget(self.web_cam)
#self.capture = cv2.VideoCapture(0)
Clock.schedule_interval(self.update, 1.0 / 33.0)
self.vid.set(cv2.CAP_PROP_FRAME_WIDTH, 1280)
self.vid.set(cv2.CAP_PROP_FRAME_HEIGHT, 720)
#w = self.vid.get(cv2.CAP_PROP_FRAME_WIDTH)
#h = self.vid.get(cv2.CAP_PROP_FRAME_HEIGHT)
#print("너비 {} 높이 {}".format(w, h))
return layout
def update(self, *args):
ret, frame = self.vid.read()
#frame = cv2.flip(frame, 0)
# Flip horizontal and convert image to texture
buf = cv2.flip(frame, 0).tostring()
img_texture = Texture.create(size=(frame.shape[1], frame.shape[0]), colorfmt='bgr')
img_texture.blit_buffer(buf, colorfmt='bgr', bufferfmt='ubyte')
self.web_cam.texture = img_texture
if __name__ == '__main__':
CamApp().run()
It works fine on PC and I used buildozer to make application. Here's my part of my buildozer.spec
# (list) Application requirements
# comma separated e.g. requirements = sqlite3,kivy
requirements = python3,kivy,opencv
Anyway, when I played the application I made, it shuts off after kivy loading page. So I used adb and got an error message
AttributeError: 'NoneType' object has no attribute 'tostring'
I can't understand why this error messaged showed up because it worked well in my PC. Please help me...
Thank you!!