Я работаю с PyMuPDF, который может возвращать растровое изображение, связанное с изображением, из пути к файлу pdf.
Для работы с массивом numpy я использую следующую функцию и понял, что ошибка индекса возникает довольно часто из-за формы моего изображения (которые серые и имеют размер (h, w, 1) вместо BGR (h, w, 3).Так что я регистрирую ошибку с моей интерпретацией.Это плохая практика?Если да, то что бы вы порекомендовали?
def pix2np(pix):
"""
Convert pixmap to image np.ndarray
https://stackoverflow.com/questions/53059007/python-opencv
param pix: pixmap
"""
import numpy as np
#https://stackoverflow.com/questions/22236749/numpy-what-is-the-difference-between-frombuffer-and-fromstring
im = np.frombuffer(pix.samples, dtype=np.uint8).reshape(pix.h, pix.w, pix.n)
try:
im = np.ascontiguousarray(im[..., [2, 1, 0]]) # rgb to bgr
except IndexError:
#Trick to convert Gray to BGR, (im.reshape)
logger.warning("Convert Gray to BGR")
im = cv2.cvtColor(im,cv2.COLOR_GRAY2RGB)
im = np.ascontiguousarray(im[..., [2, 1, 0]])
return im