成功解决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



哈哈,大功告成!


 


相关文章
|
算法
10分钟小白都可以看懂的光度立体法以及运用到项目
10分钟小白都可以看懂的光度立体法以及运用到项目
1484 0
10分钟小白都可以看懂的光度立体法以及运用到项目
|
计算机视觉
Opencv错误笔记(一):通过cv2保存图片采用中文命名出现乱码
在使用OpenCV的cv2模块保存带有中文命名的图片时,直接使用cv2.imwrite()会导致乱码问题,可以通过改用cv2.imencode()方法来解决。
1077 0
Opencv错误笔记(一):通过cv2保存图片采用中文命名出现乱码
|
计算机视觉 Windows Python
windows下使用python + opencv读取含有中文路径的图片 和 把图片数据保存到含有中文的路径下
在Windows系统中,直接使用`cv2.imread()`和`cv2.imwrite()`处理含中文路径的图像文件时会遇到问题。读取时会返回空数据,保存时则无法正确保存至目标目录。为解决这些问题,可以使用`cv2.imdecode()`结合`np.fromfile()`来读取图像,并使用`cv2.imencode()`结合`tofile()`方法来保存图像至含中文的路径。这种方法有效避免了路径编码问题,确保图像处理流程顺畅进行。
2358 1
|
11月前
|
人工智能 数据可视化 Devops
敏捷VS瀑布?敏捷项目管理方法论全解析:从核心逻辑到工具适配
本文深入解析了四大主流敏捷项目管理方法论:Scrum、Kanban、Lean和SAFe,分别阐述其核心逻辑、适用场景及典型工具。Scrum适合需求多变的中小型项目,强调迭代开发;Kanban通过可视化优化流程,适用于非迭代任务;Lean聚焦价值流优化,适于效率提升场景;SAFe为大型组织提供分层协作框架。文章对比各方法的特点与工具需求,并展望AI技术对敏捷管理的革新,为企业选择适配的方法与工具提供了理论与实践指导。
|
机器学习/深度学习 算法 PyTorch
YOLO如何入门?
YOLO如何入门?
|
安全 应用服务中间件 API
Ascend+FastAPI+ Uvicorn 实现推理
FastAPI 是一个高性能的 Python Web 框架,专为构建 RESTful API 设计,支持异步编程和数据验证。Uvicorn 是基于 ASGI 的轻量级异步服务器,与 FastAPI 结合使用可提供高效、高并发的服务。在生产环境中,二者配合 Nginx 可实现稳定安全的部署。示例代码展示了如何通过 FastAPI 和 Uvicorn 启动服务,并在 Ascend 平台上运行推理模型,处理自然语言任务。 简介字数:239
|
机器学习/深度学习 人工智能 API
【AI系统】昇腾异构计算架构 CANN
本文介绍了昇腾 AI 异构计算架构 CANN,涵盖硬件层面的达·芬奇架构和软件层面的全栈支持,旨在提供高性能神经网络计算所需的硬件基础和软件环境。通过多层级架构,CANN 实现了高效的 AI 应用开发与性能优化,支持多种主流 AI 框架,并提供丰富的开发工具和接口,助力开发者快速构建和优化神经网络模型。
1426 1
|
数据采集 Web App开发 JavaScript
python-selenium模块详解!!!
Selenium 是一个强大的自动化测试工具,支持 Python 调用浏览器进行网页抓取。本文介绍了 Selenium 的安装、基本使用、元素定位、高级操作等内容。主要内容包括:发送请求、加载网页、元素定位、处理 Cookie、无头浏览器设置、页面等待、窗口和 iframe 切换等。通过示例代码帮助读者快速掌握 Selenium 的核心功能。
1535 5
|
机器学习/深度学习 人工智能 文字识别
ultralytics YOLO11 全新发布!(原理介绍+代码详见+结构框图)
本文详细介绍YOLO11,包括其全新特性、代码实现及结构框图,并提供如何使用NEU-DET数据集进行训练的指南。YOLO11在前代基础上引入了新功能和改进,如C3k2、C2PSA模块和更轻量级的分类检测头,显著提升了模型的性能和灵活性。文中还对比了YOLO11与YOLOv8的区别,并展示了训练过程和结果的可视化
25270 0