参考代码
import osimport cv2def cv_imread(file_path):root_dir, file_name = os.path.split(file_path)pwd = os.getcwd()if root_dir:os.chdir(root_dir)cv_img = cv2.imread(file_name)os.chdir(pwd)return cv_imgimg = cv_imread(file_path)
REF
原代码
import cv2image = cv2.imread("/Users/phoenix/Desktop/求关注.png")
解决方案
方法一:
## 读取图像,解决imread不能读取中文路径的问题def cv_imread(filePath):# 核心就是下面这句,一般直接用这句就行,直接把图片转为mat数据cv_img=cv2.imdecode(np.fromfile(filePath,dtype=np.uint8),-1)# imdecode读取的是rgb,如果后续需要opencv处理的话,需要转换成bgr,转换后图片颜色会变化# cv_img=cv2.cvtColor(cv_img,cv2.COLOR_RGB2BGR)return cv_img
方法二(失败):
import cv2def cv_imread(file_path = ""):file_path_gbk = file_path.encode('gbk') # unicode转gbk,字符串变为字节数组img_mat = cv2.imread(file_path_gbk.decode()) # 字节数组直接转字符串,不解码return img_mat

https://www.codeleading.com/article/16535346440/
方法三:
import cv2import numpy as npdata = np.fromfile("/Users/phoenix/Desktop/求关注.png", dtype=np.uint8) #先用numpy把图片文件存入内存:data,把图片数据看做是纯字节数据image = cv2.imdecode(data, cv2.IMREAD_COLOR) #从内存数据读入图片
https://www.codeleading.com/article/21274770597/
def cv_imread(file_path):cv_img = cv2.imdecode(np.fromfile(file_path,dtype=np.uint8),-1)return cv_img
读取tif图片要改成uint16
https://www.zhihu.com/question/67157462
import cv2import matplotlib.pyplot as plt#构造一下def cv_img_rgb(path):#用matplotlib的路径img=plt.imread(path)#因为opencv读取是按照BGR的顺序,所以这里转换一下即可img_rgb=cv2.cvtColor(img,cv2.COLOR_BGR2RGB)return img_rgbu_url=r"F:\3班毕业季视频素材\img\img2\JPEG\2.jpg"img=cv_img_rgb(u_url)cv2.imshow("picture",img)cv2.waitKey(0)作者:云陨风方醒链接:https://www.zhihu.com/question/67157462/answer/746834340来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
import osdef cv_imread(file_path):root_dir, file_name = os.path.split(file_path)pwd = os.getcwd()if root_dir:os.chdir(root_dir)cv_img = cv2.imread(file_name)os.chdir(pwd)return cv_img作者:CrazyLee链接:https://www.zhihu.com/question/67157462/answer/522937881来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
[
