开发者

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

开发者 https://www.devze.com 2023-03-01 09:24 出处:网络 作者: zy_destiny
目录 1.读取图像的两种方式对比开发者_Python学习 2.保存图像的两种方式对比对于路径中含有中文的图像,直接用cv2.imread读取会报错,上次看到有大佬使用cv2.imdecode就可以正常读取,有点好奇,所以今天来
目录

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

 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, javascriptflags=cv2.IMREAD_COLOR)

运行上述代码,成功!

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

函数说明:

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

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

&编程客栈nbsp;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  将数组中的数据以二进制格式写进文件

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

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号