py: cam_qt: Use libcamera.formats

Use the new libcamera.formats in cam_qt.py.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
This commit is contained in:
Tomi Valkeinen 2022-05-27 17:44:19 +03:00 committed by Laurent Pinchart
parent 9ecf311375
commit 56f9de149f

View file

@ -8,6 +8,7 @@ from numpy.lib.stride_tricks import as_strided
from PIL import Image from PIL import Image
from PIL.ImageQt import ImageQt from PIL.ImageQt import ImageQt
from PyQt5 import QtCore, QtGui, QtWidgets from PyQt5 import QtCore, QtGui, QtWidgets
import libcamera as libcam
import numpy as np import numpy as np
import sys import sys
@ -87,9 +88,7 @@ def to_rgb(fmt, size, data):
w = size.width w = size.width
h = size.height h = size.height
fmt = str(fmt) if fmt == libcam.formats.YUYV:
if fmt == 'YUYV':
# YUV422 # YUV422
yuyv = data.reshape((h, w // 2 * 4)) yuyv = data.reshape((h, w // 2 * 4))
@ -111,20 +110,21 @@ def to_rgb(fmt, size, data):
rgb[:, :, 2] -= 226.8183044444304 rgb[:, :, 2] -= 226.8183044444304
rgb = rgb.astype(np.uint8) rgb = rgb.astype(np.uint8)
elif fmt == 'RGB888': elif fmt == libcam.formats.RGB888:
rgb = data.reshape((h, w, 3)) rgb = data.reshape((h, w, 3))
rgb[:, :, [0, 1, 2]] = rgb[:, :, [2, 1, 0]] rgb[:, :, [0, 1, 2]] = rgb[:, :, [2, 1, 0]]
elif fmt == 'BGR888': elif fmt == libcam.formats.BGR888:
rgb = data.reshape((h, w, 3)) rgb = data.reshape((h, w, 3))
elif fmt in ['ARGB8888', 'XRGB8888']: elif fmt in [libcam.formats.ARGB8888, libcam.formats.XRGB8888]:
rgb = data.reshape((h, w, 4)) rgb = data.reshape((h, w, 4))
rgb = np.flip(rgb, axis=2) rgb = np.flip(rgb, axis=2)
# drop alpha component # drop alpha component
rgb = np.delete(rgb, np.s_[0::4], axis=2) rgb = np.delete(rgb, np.s_[0::4], axis=2)
elif fmt.startswith('S'): elif str(fmt).startswith('S'):
fmt = str(fmt)
bayer_pattern = fmt[1:5] bayer_pattern = fmt[1:5]
bitspp = int(fmt[5:]) bitspp = int(fmt[5:])
@ -296,7 +296,7 @@ class MainWindow(QtWidgets.QWidget):
h = cfg.size.height h = cfg.size.height
pitch = cfg.stride pitch = cfg.stride
if str(cfg.pixel_format) == 'MJPEG': if cfg.pixel_format == libcam.formats.MJPEG:
img = Image.open(BytesIO(mfb.planes[0])) img = Image.open(BytesIO(mfb.planes[0]))
qim = ImageQt(img).copy() qim = ImageQt(img).copy()
pix = QtGui.QPixmap.fromImage(qim) pix = QtGui.QPixmap.fromImage(qim)