【发布时间】:2014-12-28 04:36:03
【问题描述】:
我搜索了类似的问题,但没有发现任何有用的信息,因为大多数解决方案都使用旧版本的 OpenCV。
我有一个 3D numpy 数组,我想使用 OpenCV (cv2) 将其显示和/或保存为 BGR 图像。
作为一个简短的例子,假设我有:
import numpy, cv2
b = numpy.zeros([5,5,3])
b[:,:,0] = numpy.ones([5,5])*64
b[:,:,1] = numpy.ones([5,5])*128
b[:,:,2] = numpy.ones([5,5])*192
我想做的是将 b 保存并显示为类似于以下内容的彩色图像:
cv2.imwrite('color_img.jpg', b)
cv2.imshow('Color image', b)
cv2.waitKey(0)
cv2.destroyAllWindows()
这不起作用,大概是因为 b 的数据类型不正确,但是经过大量搜索后,我无法弄清楚如何将其更改为正确的。如果您能提供任何指点,将不胜感激!
【问题讨论】:
-
感谢@beaker 的评论!但是,该问题的问题是发布者忘记了
imshow()中的论点。我的问题是imshow/imwrite不会采用上面创建的 numpy 数组。 -
您要将其保存为
BGR还是RGB?标题和问题都有。 -
@jmanring220 是的,但答案仍然显示如何将 numpy 数组转换为垫子。