关于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数据结构详细

    Python数据结构详细

    本文将详细讲解Python的数据结构,下面我们将讲解Python关于关于列表更多的内容以及del 语句和元组和序列等一些具体内容,需要的下伙伴可以参考一下
    2021-09-09
  • python TinyDB轻量级文档导向数据库轻松存储访问

    python TinyDB轻量级文档导向数据库轻松存储访问

    这篇文章主要为大家介绍了python TinyDB轻量级文档导向数据库轻松存储访问数据使用探究,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2024-01-01
  • python实现A*寻路算法

    python实现A*寻路算法

    A*算法可以显示寻路图,两点之间寻找最短路径,本文使用Python实现,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-06-06
  • Python判断变量名是否合法的方法示例

    Python判断变量名是否合法的方法示例

    今天小编就为大家分享一篇关于Python判断变量名是否合法的方法示例,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-01-01
  • Python基础 while循环与break、continue关键字

    Python基础 while循环与break、continue关键字

    今天再带着大家讲述一下while循环。那么for循环和while循环,到底有什么区别呢?下面文章就来详细介绍,感兴趣的小伙伴可以参考一下
    2021-10-10
  • centos+nginx+uwsgi部署django项目上线

    centos+nginx+uwsgi部署django项目上线

    本文主要介绍了centos+nginx+uwsgi部署django项目上线,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • 微信跳一跳python代码实现

    微信跳一跳python代码实现

    这篇文章主要为大家详细介绍了微信跳一跳python代码实现,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • 解决Spyder中图片显示太小的问题

    解决Spyder中图片显示太小的问题

    下面小编就为大家分享一篇解决Spyder中图片显示太小的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • Python+Matplotlib绘制高亮显示饼图的示例代码

    Python+Matplotlib绘制高亮显示饼图的示例代码

    饼图 (Pie Chart) 是一种圆形统计图,被分割成片用于表示数值间的比例关系,本文为大家介绍了Matplotlib绘制高亮显示的饼图的函数源码,需要的可以参考一下
    2023-06-06
  • 详解Python查找谁删了你的微信

    详解Python查找谁删了你的微信

    微信好友长时间不联系就可能被对方删除,但是微信也不会主动通知你。那么我们就来用python写一个工具查验一下谁删除了你的微信
    2022-02-02

最新评论