成功解决cv2.imwrite(filename, img)代码输出中文文件乱码的问题(cv2.imencode方法解决

简介: 成功解决cv2.imwrite(filename, img)代码输出中文文件乱码的问题(cv2.imencode方法解决)

解决问题


cv2.imwrite(filename, img)代码,输出中文文件乱码的问题


image.png




解决思路


中文乱码,利用imencode方法,cv2.imencode('.jpg', img)[1].tofile(filename)


cv2.imdecode()函数:从指定的内存缓存中读取数据,并把数据转换(解码)成图像格式;主要用于从网络传输数据中恢复出图像。

cv2.imencode()函数:是将图片格式转换(编码)成流数据,赋值到内存缓存中;主要用于图像数据格式的压缩,方便网络传输。



1、从网络读取图像数据并转换成图片格式


# -*- coding: utf-8 -*-

import numpy as np

import urllib

import cv2

url = 'http://www.pyimagesearch.com/wp-content/uploads/2015/01/google_logo.png'

resp = urllib.urlopen(url)

image = np.asarray(bytearray(resp.read()), dtype="uint8")

image = cv2.imdecode(image, cv2.IMREAD_COLOR)

cv2.imshow('URL2Image',image)

cv2.waitKey()


2、将图片编码到缓存,并保存到本地


# -*- coding: utf-8 -*-

import numpy as np

import urllib

import cv2

img = cv2.imread('0122.jpg')

# '.jpg'表示把当前图片img按照jpg格式编码,按照不同格式编码的结果不一样

img_encode = cv2.imencode('.jpg', img)[1]

# imgg = cv2.imencode('.png', img)

data_encode = np.array(img_encode)

str_encode = data_encode.tostring()

# 缓存数据保存到本地

with open('img_encode.txt', 'w') as f:

   f.write(str_encode)

   f.flush




解决方法


cv2.imwrite(filename, img)

改为

cv2.imencode('.jpg', img)[1].tofile(filename)


image.png



哈哈,大功告成!


 


相关文章
|
计算机视觉
Opencv错误笔记(一):通过cv2保存图片采用中文命名出现乱码
在使用OpenCV的cv2模块保存带有中文命名的图片时,直接使用cv2.imwrite()会导致乱码问题,可以通过改用cv2.imencode()方法来解决。
1248 0
Opencv错误笔记(一):通过cv2保存图片采用中文命名出现乱码
Python字符串center()方法详解 - 实现字符串居中对齐的完整指南
Python的`center()`方法用于将字符串居中,并通过指定宽度和填充字符美化输出格式,常用于文本对齐、标题及表格设计。
|
8月前
|
人工智能 JavaScript 机器人
Coze vs Dify vs n8n:三大AI智能体开发平台全面对比
2025年三大AI智能体平台深度对比:Coze零代码快速搭建,适合个人与轻量应用;Dify专注企业级大模型应用,平衡易用与灵活;n8n强在自动化集成,支持高度定制。根据需求选型,助力高效开发。
|
API 数据处理 开发者
获取淘宝分类详情:深入解析taobao.cat_get API接口
淘宝开放平台推出的`taobao.cat_get` API接口,帮助开发者和商家获取淘宝、天猫的商品分类详情。该接口支持获取类目列表、属性及父类目信息,通过指定分类ID(cid)实现精准查询,并提供灵活的参数设置和高效的数据处理。使用流程包括注册账号、创建应用、获取App Key/Secret、构造请求、发送并解析响应。示例代码展示了如何用Python调用此API。开发者可借此为电商项目提供数据支持。
|
10月前
|
数据采集 人工智能 自然语言处理
重磅干货|《AI时代数据治理白皮书》正式发布!
AI时代,数据质量决定智能上限。阿里巴巴Dataphin推出《AI时代数据治理白皮书》,提出“好数据×好知识=真智能”,详解面向AI的四层治理体系,揭示如何以高质量数据驱动智能化转型,助力企业构建核心竞争力。
1806 0
|
计算机视觉 Windows Python
windows下使用python + opencv读取含有中文路径的图片 和 把图片数据保存到含有中文的路径下
在Windows系统中,直接使用`cv2.imread()`和`cv2.imwrite()`处理含中文路径的图像文件时会遇到问题。读取时会返回空数据,保存时则无法正确保存至目标目录。为解决这些问题,可以使用`cv2.imdecode()`结合`np.fromfile()`来读取图像,并使用`cv2.imencode()`结合`tofile()`方法来保存图像至含中文的路径。这种方法有效避免了路径编码问题,确保图像处理流程顺畅进行。
2650 1
|
机器学习/深度学习 算法 PyTorch
YOLO如何入门?
YOLO如何入门?
|
安全 应用服务中间件 API
Ascend+FastAPI+ Uvicorn 实现推理
FastAPI 是一个高性能的 Python Web 框架,专为构建 RESTful API 设计,支持异步编程和数据验证。Uvicorn 是基于 ASGI 的轻量级异步服务器,与 FastAPI 结合使用可提供高效、高并发的服务。在生产环境中,二者配合 Nginx 可实现稳定安全的部署。示例代码展示了如何通过 FastAPI 和 Uvicorn 启动服务,并在 Ascend 平台上运行推理模型,处理自然语言任务。 简介字数:239
|
机器学习/深度学习 人工智能 文字识别
ultralytics YOLO11 全新发布!(原理介绍+代码详见+结构框图)
本文详细介绍YOLO11,包括其全新特性、代码实现及结构框图,并提供如何使用NEU-DET数据集进行训练的指南。YOLO11在前代基础上引入了新功能和改进,如C3k2、C2PSA模块和更轻量级的分类检测头,显著提升了模型的性能和灵活性。文中还对比了YOLO11与YOLOv8的区别,并展示了训练过程和结果的可视化
26786 0
|
机器学习/深度学习 算法 计算机视觉
【博士每天一篇文献-算法】持续学习经典算法之LwF: Learning without forgetting
LwF(Learning without Forgetting)是一种机器学习方法,通过知识蒸馏损失来在训练新任务时保留旧任务的知识,无需旧任务数据,有效解决了神经网络学习新任务时可能发生的灾难性遗忘问题。
1899 9