当前位置:主页 > python教程 > cv2.imread 和 cv2.imdecode

cv2.imread 和 cv2.imdecode 用法及区别

发布:2023-03-22 19:20:01 59


给网友朋友们带来一篇相关的编程文章,网友吕琇晶根据主题投稿了本篇教程内容,涉及到cv2.imread、和、cv2.imdecode、cv2.imread、和、cv2.imdecode用法、cv2.imread 和 cv2.imdecode相关内容,已被394网友关注,内容中涉及的知识点可以在下方直接下载获取。

cv2.imread 和 cv2.imdecode

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

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

cv2.imread正常读取影像

import cv2
path = '/data/北京/beijing.png'
img = cv2.imread(path)

运行上述代码,会报错!

cv2.imdecode从内存中读取影像

import cv2
path = '/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 cv2
out_path = '/data/北京/beijing.png'
cv2.imwrite(out_path,img)

运行上述代码,会报错!

cv2.imdecode从内存中读取影像

import cv2
out_path = '/data/北京/beijing.png'
arr = cv2.imencode('png',img)
out[1].tofile(out_path)

运行上述代码,成功!

 函数说明:

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

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

到此这篇关于cv2.imread 和 cv2.imdecode 用法的文章就介绍到这了,更多相关cv2.imread 和 cv2.imdecode内容请搜索码农之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持码农之家!


参考资料

相关文章

  • python中split(), os.path.split()和os.path.splitext()的用法

    发布:2023-04-05

    本文主要介绍了python中split(), os.path.split()和os.path.splitext()的用法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧


  • 如何使用conda和pip批量安装Python包

    发布:2023-04-22

    这篇文章主要介绍了如何使用conda和pip批量安装Python包问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教


  • RecyclerView设置间距和添加分割线的方法

    发布:2023-03-05

    在使用RecyclerView布局,经常需要调整间距和添加分割线以达到更美观效果,这篇文章主要介绍了RecyclerView设置间距和添加分割线的方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下


  • java==运算符和equals()方法的区别

    发布:2019-06-28

    这篇文章主要介绍了java==运算符和equals()方法的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧


  • Java通过BCrypt加密的具体方法和步骤

    发布:2020-01-16

    这篇文章主要介绍了Java通过BCrypt加密过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下


  • Unicode、UTF-8 和 ISO8859-1区别解析

    发布:2023-04-23

    这篇文章主要介绍了Unicode、UTF-8 和 ISO8859-1到底有什么区别,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下


  • Java实现读取TXT和CSV文件内容

    发布:2023-04-10

    这篇文章主要为大家详细介绍了如何利用Java语言实现读取TXT和CSV文件内容的功能,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下


  • pandas行和列的获取的实现

    发布:2023-03-06

    本文主要介绍了pandas行和列的获取的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧


网友讨论