bugfix
This commit is contained in:
parent
077ab42ad7
commit
fd88ea096a
@ -5,6 +5,7 @@ from kivy.properties import BooleanProperty, NumericProperty
|
|||||||
from kivy.uix.button import Button
|
from kivy.uix.button import Button
|
||||||
from kivy.uix.boxlayout import BoxLayout
|
from kivy.uix.boxlayout import BoxLayout
|
||||||
from kivy.graphics import PushMatrix, Rotate, PopMatrix
|
from kivy.graphics import PushMatrix, Rotate, PopMatrix
|
||||||
|
from kivy.graphics.texture import Texture
|
||||||
|
|
||||||
import kivy
|
import kivy
|
||||||
import numpy as np
|
import numpy as np
|
||||||
@ -25,28 +26,41 @@ class CustomCamera(XCamera):
|
|||||||
super(CustomCamera, self).__init__(**kwargs)
|
super(CustomCamera, self).__init__(**kwargs)
|
||||||
self.isAndroid = kivy.platform == "android"
|
self.isAndroid = kivy.platform == "android"
|
||||||
self.app = App.get_running_app()
|
self.app = App.get_running_app()
|
||||||
self.angle = 270
|
|
||||||
|
|
||||||
def on_tex(self, camera):
|
def on_tex(self, camera):
|
||||||
image = np.frombuffer(camera.texture.pixels, dtype='uint8')
|
texture = camera.texture
|
||||||
image = image.reshape(camera.texture.height, camera.texture.width, -1)
|
image = np.frombuffer(texture.pixels, dtype='uint8')
|
||||||
x = 0
|
image = image.reshape(texture.height, texture.width, -1)
|
||||||
|
size1 = image.shape
|
||||||
|
x = 2
|
||||||
if self.isAndroid:
|
if self.isAndroid:
|
||||||
x = self.app.get_rotation()
|
x = self.app.get_rotation()
|
||||||
|
y = self.angle_map[x]
|
||||||
|
x = y / 90
|
||||||
|
|
||||||
if x > 0:
|
if x > 0:
|
||||||
image = np.rot90(image,x)
|
image = np.rot90(image,x)
|
||||||
|
|
||||||
image = cv2.cvtColor(image, cv2.COLOR_RGBA2BGR)
|
|
||||||
|
|
||||||
if self.detectFaces:
|
if self.detectFaces:
|
||||||
_image, faceRect = face_detection(image, (0, 255, 0, 255), self.angle)
|
image = cv2.cvtColor(image, cv2.COLOR_RGBA2BGR)
|
||||||
|
angle = x * 90
|
||||||
|
image, faceRect = face_detection(image, (0, 255, 0, 255), angle)
|
||||||
image = cv2.cvtColor(image, cv2.COLOR_BGR2RGBA)
|
image = cv2.cvtColor(image, cv2.COLOR_BGR2RGBA)
|
||||||
|
size3 = image.shape
|
||||||
|
size3_2 = size3[:2]
|
||||||
|
h,w,_ = size3
|
||||||
numpy_data = image.tostring()
|
numpy_data = image.tostring()
|
||||||
self.texture.blit_buffer(numpy_data, bufferfmt="ubyte", colorfmt='rgba')
|
self.texture = Texture.create(size=(w,h), \
|
||||||
|
colorfmt='rgba')
|
||||||
|
self.texture.blit_buffer(numpy_data,
|
||||||
|
size=(w,h),
|
||||||
|
bufferfmt="ubyte", colorfmt='rgba')
|
||||||
|
size4=self.texture.size
|
||||||
self.texture_size = list(self.texture.size)
|
self.texture_size = list(self.texture.size)
|
||||||
self.canvas.ask_update()
|
self.canvas.ask_update()
|
||||||
|
print('size1=',size1,
|
||||||
|
'size2=', size2,
|
||||||
|
'size3=', size3,
|
||||||
|
'size4=', size4)
|
||||||
return
|
return
|
||||||
|
|
||||||
def change_index(self, *args):
|
def change_index(self, *args):
|
||||||
@ -90,5 +104,6 @@ class QrReader(CustomCamera):
|
|||||||
self.qr_result, bbox,_ = self.qr_reader.detectAndDecode(image)
|
self.qr_result, bbox,_ = self.qr_reader.detectAndDecode(image)
|
||||||
if self.qr_result:
|
if self.qr_result:
|
||||||
print('qr read done')
|
print('qr read done')
|
||||||
|
self.dismiss()
|
||||||
self.dispatch('on_data',self.qr_result)
|
self.dispatch('on_data',self.qr_result)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user