最近使用pdf2image将PDF转换为图片时,使用如下代码:
pil_images = pdf2image.convert_from_path(pdf_path, dpi)
images = []
for pil_img in pil_images:
img = np.asarray(pil_img)
try:
img.setflags(write=1)
except Exception as e:
logger.warn(e)
images.append(img)
这里加入异常处理,是因为,每次执行img.setflags(write=1)
,都会报如下错误:
cannot set WRITABLE flag to True of this array
虽然保存图片是可以的,但是没有办法基于图像相关的ndarray做后续的画框等操作。
查了一下资料,做如下处理即可:
img = np.require(img, dtype='f4', requirements=['O', 'W'])
完整代码如下:
pil_images = pdf2image.convert_from_path(pdf_path, dpi)
images = []
for pil_img in pil_images:
img = np.asarray(pil_img)
img = np.require(img, dtype='f4', requirements=['O', 'W'])
try:
img.setflags(write=1)
except Exception as e:
logger.warn(e)
images.append(img)
网友评论