程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

2023-03(2)

2023-04(2)

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

发布于2023-05-20 16:21     阅读(709)     评论(0)     点赞(28)     收藏(1)


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

目录

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

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

 


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

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

运行上述代码,会报错!

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

运行上述代码,成功!

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

函数说明:

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

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


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

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

运行上述代码,会报错!

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

运行上述代码,成功!

 函数说明:

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

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

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

原文链接:https://blog.csdn.net/qq_38308388/article/details/129199454



所属网站分类: 技术文章 > 博客

作者:小白鼠

链接:https://www.pythonheidong.com/blog/article/1979401/ae44b74d29be41e4f8c5/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

28 0
收藏该文
已收藏

评论内容:(最多支持255个字符)