【发布时间】:2013-01-18 13:28:30
【问题描述】:
我正在尝试将两个图像堆叠在一起,这样我就可以在一个窗口中显示这两个图像。 第一个图像是原始的 3 通道图像,第二个是灰色版本。 我用 cv2.cvtColor 进行了颜色转换,用 numpy.dstack 转换回 3 通道, 当我尝试 cv2.imshow 时,它给了我一个“core dumped”错误。 我错过了什么吗?我需要两个图像具有相同数量的通道来堆叠它们 使用 numpy.hstack。这发生在 Ubuntu 64 位机器上。
import cv2
import numpy as np
img = cv2.imread("/home/bernie/Dropbox/Python/Opencv/lena512.jpg")
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
gray = np.dstack((gray,gray,gray))
#res = np.hstack((img,gray))
print gray.dtype
print gray.shape
cv2.imshow('gray',gray)
#cv2.imshow('res',res)
cv2.waitKey()
加法
另一方面,使用
gray = cv2.cvtColor(gray,cv2.COLOR_GRAY2BGR)
在 第 7 行 没有任何抱怨,所以我现在会坚持下去。这意味着存在差异 之间 cv2.cvtColor 结果和 numpy.dstack 结果用于将 1 通道图像转换为具有相等值的 3 通道图像。
【问题讨论】:
-
谢谢 fraxel,这回答了我的问题。
-
@fraxel 你能把这个链接写成答案吗?
-
无论你如何调用 cv.imshow,都不应该有核心转储。见github.com/opencv/opencv-python/issues/501