opencv_python_读取中文路径图片怎么办?_教程2

本文介绍了解决OpenCV在Python中无法直接读取包含中文路径的图片的问题,并提供了一种有效的替代方案,即通过numpy模块结合cv2.imdecode来实现。

1、首先建议大家入门学习的时候,文件名称和目录全部用英文,说3遍,说3遍,说3遍!

2、opencv读取中文路径的时怎么办?

3、如将lenargb.jpg的路径设置为 "E\陈\lenargb.jpg"

#引入opencv模块
import cv2 as cv
#查看opencv的版本
print(cv.__version__)
#读取图片
img = cv.imread('E:\陈\lenargb.jpg')
#判断是否读取成功
if img is None:
    print("Could not read the image,may be path error")
#显示图像
cv.imshow("Display window", img)
#让显示等待键盘输入维持在那里,否则程序跑完就闪退啦!
cv.waitKey(0)
#销毁窗口
cv.destroyAllWindows()

程序运行会报错,很明显imread不支持中文路径

4、中文路径的解决方法1

img=cv.imdecode(np.fromfile('E:\陈\lenargb.jpg',dtype=np.uint8),cv.IMREAD_UNCHANGED)

测试代码如下:

#引入opencv模块
import cv2 as cv
#引入numpy模块
import numpy as np


#查看opencv的版本
print(cv.__version__)
#读取图片
#img = cv.imread('E:\陈\lenargb.jpg')
#打开含有中文路径的图片
img=cv.imdecode(np.fromfile('E:\陈\lenargb.jpg',dtype=np.uint8),-1)
#img=cv.imdecode(np.fromfile('E:\陈\lenargb.jpg',dtype=np.uint8),cv.IMREAD_UNCHANGED)
#判断是否读取成功
if img is None:
    print("Could not read the image,may be path error")
#显示图像
cv.imshow("Display window", img)
#让显示等待键盘输入维持在那里,否则程序跑完就闪退啦!
cv.waitKey(0)
#销毁窗口
cv.destroyAllWindows()

5、imdecode的参数说明

img = cv.imdecode(np.fromfile(img_path, dtype=np.uint8), -1)  # 读入完整图片,见下面解释

img = cv.imdecode(np.fromfile(img_path, dtype=np.uint8), 0)  # 读成灰度

img = cv.imdecode(np.fromfile(img_path, dtype=np.uint8), 1)  # 读成彩图

其中cv2.imdecode后面的flag -1应该是和cv2.imread一样的,但是要带上

使用函数cv2.imread(filepath, flags)读入一幅图片:

filepath: 要读入图片的路径。

flags: 读入图片的标志:

  cv2.IMREAD_UNCHANGED(-1): 顾名思义,读入完整图片,包括alpha通道。如果数据不含alpha通道则灰图读成(H, W),彩图读成(H, W, 3)。

  cv2.IMREAD_GRAYSCALE(0): 读入灰度图片,形状为(H, W)。彩图也读成灰的形状。

  cv2.IMREAD_COLOR(1): 默认参数

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值