美文网首页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