美文网首页Python
解决numpy的cannot set WRITABLE flag

解决numpy的cannot set WRITABLE flag

作者: blade_he | 来源:发表于2019-04-30 12:27 被阅读0次

最近使用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)

相关文章

网友评论

    本文标题:解决numpy的cannot set WRITABLE flag

    本文链接:https://www.haomeiwen.com/subject/rtgmnqtx.html