本人在做人脸识别程序时,采集人脸信息,使用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

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐