参考代码
import os
import cv2
def 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
img = cv_imread(file_path)
REF
原代码
import cv2
image = 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 cv2
def 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 cv2
import numpy as np
data = 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 cv2
import 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_rgb
u_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 os
def 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
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
[