本人在做人脸识别程序时,采集人脸信息,使用cv2.imread()从绝对路径中读取图片,但是路径中包含中文路径,结果导致无法读取成功。

    print(image.dtype)#打印输入图片路径
    ## 读取图像,解决imread不能读取中文路径的问题
    def cv2_imread(image):
        image=cv2.imdecode(np.fromfile(image,dtype=np.uint8),-1)
        ## imdecode读取的是rgb,如果后续需要opencv处理的话,需要转换成bgr,转换后图片颜色会变化
        ##cv_img=cv2.cvtColor(cv_img,cv2.COLOR_RGB2BGR)
        image=cv2.cvtColor(image,cv2.COLOR_BGR2BGRA)
        return image
    
    image=cv2_imread(image)
    print(image.dtype)

如上述代码,本人在输入图片路径后,进行第一次打印,发现image类型为str,而opencv做图像检测时,所需图像需为unit8。使用上述函数后,进行第二次打印,发现格式已经转换为unit8。

感谢liuqinshouss博主的文章,感谢大佬,帮我解决了这个问题,附链接:
https://blog.csdn.net/liuqinshouss/article/details/78696032

推荐大家都去看看,写的非常不错

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐