返回顶部
首页 > 资讯 > 后端开发 > Python >【cv2.imread】与【cv2.imdecode】用法
  • 689
分享到

【cv2.imread】与【cv2.imdecode】用法

计算机视觉opencvpython 2023-09-15 12:09:05 689人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

对于路径中含有中文的图像,直接用cv2.imread读取会报错,上次看到有大佬使用cv2.imdecode就可以正常读取,有点好奇,所以今天来记录下二者用法和区别。 目录  1.读取图像的两种方式对比  2.保存图像的两种方式对比  

对于路径中含有中文的图像,直接用cv2.imread读取会报错,上次看到有大佬使用cv2.imdecode就可以正常读取,有点好奇,所以今天来记录下二者用法和区别。

目录

 1.读取图像的两种方式对比

 2.保存图像的两种方式对比

 


 1.读取图像的两种方式对比

  • cv2.imread正常读取影像
import cv2path = '/data/北京/beijing.png'img = cv2.imread(path)

运行上述代码,会报错!

  • cv2.imdecode从内存中读取影像
import cv2path = '/data/北京/beijing.png'arr = np.fromfile(path, dtype=np.uint8)img = cv2.imdecode(arr, flags=cv2.IMREAD_COLOR)

运行上述代码,成功!

并且imdecode得到的影像波段顺序是RGB,不是BGR,这是与opencv区别的地方。

函数说明:

np.decode  从内存的缓冲区读取图像

np.fromfile  将文本或二进制文件中数据构造成数组


 2.保存图像的两种方式对比

  • cv2.imwrite 正常读取影像
import cv2out_path = '/data/北京/beijing.png'cv2.imwrite(out_path,img)

运行上述代码,会报错!

  • cv2.imdecode从内存中读取影像
import cv2out_path = '/data/北京/beijing.png'arr = cv2.imencode('png',img)out[1].tofile(out_path)

运行上述代码,成功!

 函数说明:

cv2.encode  将图像编码到内存缓冲区中

np.tofile  将数组中的数据以二进制格式写进文件

整理不易,欢迎一键三连!!!

来源地址:https://blog.csdn.net/qq_38308388/article/details/129199454

--结束END--

本文标题: 【cv2.imread】与【cv2.imdecode】用法

本文链接: https://lsjlt.com/news/408566.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作