关于opencv读取和写入路径有汉字的处理方式

 更新时间:2022年07月14日 09:49:56   作者:AI浩  
这篇文章主要介绍了关于opencv读取和写入路径有汉字的处理方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

opencv读取和写入路径有汉字的处理

读取图片

 img_gt = cv2.imdecode(np.fromfile(path, dtype=np.uint8), -1)
 img_gt = cv2.cvtColor(img_gt, cv2.IMREAD_COLOR)

写入图片

write_path=f'{save_dir}/{imgname}.jpg'
cv2.imencode('.jpg', output)[1].tofile(write_path)  # 保存图片

C++版本

#include<iostream> 
#include <opencv2/core/core.hpp> 
#include <opencv2/highgui/highgui.hpp>
#include "opencv2/imgproc.hpp"
#include "opencv2/imgcodecs.hpp"
#include <opencv2/highgui/highgui_c.h>
using namespace cv;
int main()
{
    std::string image_path = samples::findFile("D:\\素材\\1.png");
    Mat img = imread(image_path, IMREAD_COLOR);
    imshow("src", img);//原图像
    waitKey(0);
}

opencv的imread不支持中文路径问题

其实严格来说,不是imread不支持中文路径,而是不支持non-ascii。所以不论路径如何转换编码格式,应该都不能解决问题。

解决的思路就是先用其他支持中文的API,把图片数据导入到内存中,然后通过opencv从内存读入图片的方法,读入图片。

实现很简单

import cv2
import numpy as np

def readimg(filename, mode):
    raw_data = np.fromfile(filename, dtype=np.uint8)  #先用numpy把图片文件存入内存:raw_data,把图片数据看做是纯字节数据
    img = cv2.imdecode(raw_data, mode)  #从内存数据读入图片
    return img

这个函数就可以代替opencv的imread了,并且该函数支持中文路径

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 基于Python编写一个MP3分割工具

    基于Python编写一个MP3分割工具

    这篇文章主要为大家详细介绍了如何基于Python编写一个MP3分割工具,可以将MP4转成Mp3并且按时间或按歌曲分割,感兴趣的小伙伴可以了解下
    2025-02-02
  • Python利用D3Blocks绘制可动态交互的图表

    Python利用D3Blocks绘制可动态交互的图表

    今天小编给大家来介绍一款十分好用的可视化模块,D3Blocks,不仅可以用来绘制可动态交互的图表,并且导出的图表可以是HTML格式,方便在浏览器上面呈现,感兴趣的可以了解一下
    2023-02-02
  • 详解解决jupyter不能使用pytorch的问题

    详解解决jupyter不能使用pytorch的问题

    这篇文章主要介绍了详解解决jupyter不能使用pytorch的问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • Python写的Discuz7.2版faq.php注入漏洞工具

    Python写的Discuz7.2版faq.php注入漏洞工具

    这篇文章主要介绍了Python写的Discuz7.2版faq.php注入漏洞工具,全自动的一款注入工具,针对Discuz7.2版,需要的朋友可以参考下
    2014-08-08
  • python增加矩阵维度的实例讲解

    python增加矩阵维度的实例讲解

    下面小编就为大家分享一篇python增加矩阵维度的实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • django的使用步骤入门教程(很详细)

    django的使用步骤入门教程(很详细)

    随着IT行业的不断发展,编程学习也越来越重要,很多人都开启了很多计算机语言的学习,下面这篇文章主要给大家介绍了关于django的使用步骤入门教程,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2023-05-05
  • 我用Python做个AI出牌器斗地主把把赢

    我用Python做个AI出牌器斗地主把把赢

    这篇文章主要介绍了我是如何用Python做的AI出牌器,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-08-08
  • 对Python通过pypyodbc访问Access数据库的方法详解

    对Python通过pypyodbc访问Access数据库的方法详解

    今天小编就为大家分享一篇对Python通过pypyodbc访问Access数据库的方法详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-10-10
  • Python中赋值的含义及说明

    Python中赋值的含义及说明

    这篇文章主要介绍了Python中赋值的含义及说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • Python从MySQL数据库中面抽取试题,生成试卷

    Python从MySQL数据库中面抽取试题,生成试卷

    这篇文章主要介绍了Python如何从MySQL数据库中面抽取试题,生成试卷,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下
    2021-01-01

最新评论