[Python] OpenCV读取中文路径--学习笔记

1.简介

最近使用OpenCV读取影像时,发现读取到的Mask为None,搜寻后发现是编码问题导致的读取中文路径下的图片失败。之前一直习惯将代码和数据保存在英文路径下,以为OpenCV的cv2.imread能够支持各种路径和格式的图片读取,今天发现了就浅浅记录一下。

2.方法:使用cv2.imdecode函数

简单的一行代码就能解决这个问题,很优雅⭐_⭐

import cv2
import numpy as np

img = cv2.imdecode(np.fromfile("中文路径/图片.jpg",dtype=np.uint8),-1)

3.代码解释

使用了Python中的OpenCV库(cv2),NumPy库(np)和文件I/O操作,具体解释如下:

  1. np.fromfile("中文路径/图片.jpg", dtype=np.uint8): 这一部分使用NumPy的fromfile函数从文件中读取数据,并将其转换为NumPy数组。其中,"中文路径/图片.jpg"是文件的路径,dtype=np.uint8表示将数据类型设定为无符号8位整数,即每个像素值占一个字节。

  2. cv2.imdecode(...): 这是OpenCV中的一个函数,用于解码图像文件并将其转换为图像矩阵。在这里,它接收NumPy数组作为输入参数,这个数组包含了从文件中读取的图像数据。

  3. -1: 这个参数表示图像加载标志。在这种情况下,-1表示将图像加载为原始图像,包括alpha通道(如果存在),即读取到的img与原始影像的通道数相同

参考博客

OpenCV读取中文路径图片

  • 15
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值