OpenCV读取并保存中文路径图片指南

OpenCV读取并保存中文路径图片指南

一、需求分析

在Python中使用OpenCV处理图片时,涉及读取和保存图片的操作,可能会遇到中文路径的兼容性问题。该指南的目的是展示如何正确处理带有中文路径的图片,并使用OpenCV将图片保存到指定的中文路径下。

二、工具链(各种对象或函数)

2.1 cv2.imencode

语法:

python 复制代码
cv2.imencode(ext, img[, params])

参数解析:

  • ext:指定保存文件的格式,例如.jpg.png
  • img:待保存的图片数据(numpy数组)。
  • params:可选参数,用于设置图片的保存质量等属性。
  • 返回值:一个包含编码后的图片字节数据的元组(返回值为成功与否的布尔值和字节数据)。
2.2 numpy.tofile

语法:

python 复制代码
numpy.ndarray.tofile(fid, sep="", format="%s")

参数解析:

  • fid:保存的目标文件路径,可以是中文路径。
  • sep:分隔符。默认值为空,表示不使用分隔符。
  • format:保存数据的格式。
  • 返回值:无。直接将数组内容保存到指定路径。

三、实例

3.1 读取和保存带中文路径的图片
  • 代码:
python 复制代码
import cv2
import numpy as np

# 读取中文路径图片
img_path = r'中文路径/图片.jpg'
img = cv2.imdecode(np.fromfile(img_path, dtype=np.uint8), cv2.IMREAD_COLOR)

# 检查图片是否读取成功
if img is None:
    raise ValueError(f"无法读取图片:{img_path}")

# 保存图片到新的中文路径
save_path = r'中文路径/保存的图片.jpg'
cv2.imencode('.jpg', img)[1].tofile(save_path)
print(f"图片已保存至:{save_path}")
  • 代码解释:
    1. 使用np.fromfile来读取含中文路径的图片文件,并将其转化为字节数据,避免因路径编码问题导致的cv2.imread失败。
    2. 利用cv2.imdecode将读取的字节数据解码为OpenCV可处理的图像数据。
    3. 将读取的图片数据通过cv2.imencode编码后,利用tofile保存至中文路径,确保路径兼容性。
    4. cv2.imencode('.jpg', img)返回的是一个包含两个元素的元组,第一个元素是编码是否成功的布尔值,第二个元素是编码后的图像字节数据。

四、注意事项

  1. Python的cv2.imread可能无法直接处理中文路径,建议使用np.fromfile读取图片并通过cv2.imdecode解码。
  2. 保存图片时,直接使用cv2.imwrite也会遇到中文路径问题,使用cv2.imencode结合numpy.tofile来保存图片文件。
  3. 确保路径中的中文字符以r''的原始字符串格式传递,避免转义字符导致的路径错误。
相关推荐
智驱力人工智能8 小时前
小区高空抛物AI实时预警方案 筑牢社区头顶安全的实践 高空抛物检测 高空抛物监控安装教程 高空抛物误报率优化方案 高空抛物监控案例分享
人工智能·深度学习·opencv·算法·安全·yolo·边缘计算
sali-tec10 小时前
C# 基于OpenCv的视觉工作流-章22-Harris角点
图像处理·人工智能·opencv·算法·计算机视觉
光羽隹衡12 小时前
计算机视觉——Opencv(图像拼接)
人工智能·opencv·计算机视觉
爱打代码的小林13 小时前
基于 MediaPipe 实现实时面部关键点检测
python·opencv·计算机视觉
深蓝电商API14 小时前
图片验证码识别:pytesseract+opencv入门
人工智能·opencv·计算机视觉·pytesseract
Sagittarius_A*16 小时前
特征检测:SIFT 与 SURF(尺度不变 / 加速稳健特征)【计算机视觉】
图像处理·人工智能·python·opencv·计算机视觉·surf·sift
nLsUCWFJR19 小时前
(Matlab)基于贝叶斯优化卷积双向长短期记忆网络(CNN-BiLSTM)回归预测
opencv
南极星10051 天前
我的创作纪念日--128天
java·python·opencv·职场和发展
一招定胜负1 天前
基于dlib和OpenCV的人脸替换技术详解
opencv·计算机视觉
勾股导航2 天前
OpenCV图像坐标系
人工智能·opencv·计算机视觉