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)
我可以使用 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)