Python 官方文档:入门教程 => 点击学习
目录OpenCV读取和写入路径有汉字的处理读取图片写入图片opencv的imread不支持中文路径问题实现很简单opencv读取和写入路径有汉字的处理 读取图片 img_gt =
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);
}
其实严格来说,不是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了,并且该函数支持中文路径
以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。
--结束END--
本文标题: 关于opencv读取和写入路径有汉字的处理方式
本文链接: https://lsjlt.com/news/119329.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0