cv2.imread和cv2.imdecode怎么使用

其他教程   发布日期:2023年07月16日   浏览次数:269

这篇“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怎么使用的资料请关注九品源码其它相关文章!