В apk нет модуля cv2 - PullRequest
       18

В apk нет модуля cv2

0 голосов
/ 12 апреля 2019

Добрый день, есть небольшое приложение, написанное на python, kivy и opencv.Сборщик создает без ошибок, но когда я запускаю приложение на телефоне, происходит сбой со следующей ошибкой:

04-12 18: 44: 54.848 5697 5739 I python: File "/ home / max/desktop/finish/.buildozer/android/app/main.py ", строка 13, в модуле

04-12 18: 44: 54.848 5697 5739 I python: ModuleNotFoundError: Нет модуля с именем 'cv2'

Установлен Opencv, я использую PyCharm для написания кода.В чем может быть проблема?

требования = python3, kivy, numpy, opencv

код (при необходимости):

import kivy.core.text
from kivy.app import App
from kivy.uix.gridlayout import GridLayout
from kivy.uix.label import Label
from kivy.uix.textinput import TextInput
from kivy.uix.scrollview import ScrollView
from kivy.lang import Builder
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.base import runTouchApp
from kivy.clock import Clock
from kivy.uix.image import Image
import time
import cv2
from kivy.uix.boxlayout import BoxLayout
from kivy.graphics.texture import Texture

Builder.load_string('''<MainScreen>:               
    BoxLayout:
        orientation: "vertical"
        KivyCamera:
        Label:
            height: 20
            size_hint_y: None
            text: 'Cam_01'
    BoxLayout:
        orientation: "horizontal"
        height: 50
        size_hint_y: None
        Button:
            text: "Options"
            size_hint_y: None
            width: 150
            height: 50
            on_release: root.manager.current = 'options' 
<OptionsScreen>
    GridLayout:
        rows:3
        cols:1
        padding: 10
        spacing: 10
        Button:
            text: "Main Screen"
            size_hint_y: None
            width: 150
            height: 50
            on_release: root.manager.current = 'main'
        Button:
            text: "Alarm"
            size_hint_y: None
            width: 150
            height: 50
            on_release: root.manager.current = 'alarm'
        Button:
            text: "test"
            size_hint_y: None
            width: 150
            height: 50
<AlarmScreen>
    GridLayout:
        rows:3
        cols:1
        padding: 10
        spacing: 10
        Button:
            text: "Main Screen"
            size_hint_y: None
            width: 150
            height: 50
            on_release: root.manager.current = 'main'
        Button:
            text: "Options"
            size_hint_y: None
            width: 150
            height: 50
            on_release: root.manager.current = 'options'
        Button:
            text: "test"
            size_hint_y: None

            width: 150
            height: 50''')

class KivyCamera(Image):
    def __init__(self, **kwargs):
        super(KivyCamera, self).__init__(**kwargs)

        self.capture = cv2.VideoCapture(1)

        self.fps = 30

        Clock.schedule_interval(self.update, 1.0 / self.fps)

    def update(self, dt):
        ret, frame = self.capture.read()
        if ret:
            # convert it to texture
            buf1 = cv2.flip(frame, 0)
            buf = buf1.tostring()
            image_texture = Texture.create(
            size=(frame.shape[1], frame.shape[0]), colorfmt='bgr')
            image_texture.blit_buffer(buf, colorfmt='bgr', bufferfmt='ubyte')
        # display image from the texture
            self.texture = image_texture
            self.canvas.ask_update()

class MainScreen(Screen):
    pass

class OptionsScreen(Screen):
    pass


class AlarmScreen(Screen):
    pass

class Project_1App(App):
    def build(self):
        screenManager = ScreenManager()
        screenManager.add_widget(MainScreen(name="main"))
        screenManager.add_widget(OptionsScreen(name="options"))
        screenManager.add_widget(AlarmScreen(name="alarm"))

        return screenManager

Project_1App().run()
...