kivy 图像和 PIL 图像

kivy image and PIL image

我可以使用 kivy 相机读取图像。我希望使用类似于此

的代码来解释该图像中的二维码
texture = self.cameraObject.texture
size=texture.size
frame=texture.pixels
pil_image = Image.frombytes(mode='RGBA', size=size,data=frame)
pix=numpy.array(pil_image)
im=Image.fromarray(pix)

qrCodeDetector =cv2.QRCodeDetector()
decodedText, points, _ = qrCodeDetector.detectAndDecode(pix)

Kivy 相机允许我扫描图像,但要使用 QR 检测器,图像必须转换为 numpy 数组

我有一个导入,然后是一个 class 开始

   from kivy.uix.image import Image
   class KivyCamera(Image):
    def __init__(self, **kwargs):
        super(KivyCamera, self).__init__(**kwargs)
        self.capture = None

     # and so on

程序运行但 PIL 映像 class 中的方法不可用。例如 Image.frombytes 和 Image.fromarray 需要将图像转换为另一个图像。

将图像导入更改为 from PIL import Image 程序崩溃并显示错误消息

class KivyCamera(Image):

TypeError: module.init() takes at most 2 arguments (3 given)

如何使用看起来不可能的 kivy Image 进行图像转换,或者如何让 init 模块接受 PIL Image class?

您可以像这样导入 Image 类:

from kivy.uix.image import Image
from PIL import Image as Pimage

然后,无论你想在何处使用 PIL Image,请使用 Pimage:

pil_image = Pimage.frombytes(mode='RGBA', size=size,data=frame)