【问题标题】:cv2.imshow and numpy.dstack core dumpedcv2.imshow 和 numpy.dstack 核心转储
【发布时间】: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 通道图像。

【问题讨论】:

标签: python opencv numpy


【解决方案1】:

按照 cmets 的建议,尝试使用 cv2.merge,因为显然它的步幅与 np.dstack 不同:

gray = cv2.merge([gray]*3)

见@fraxellink for more info

【讨论】:

    猜你喜欢
    • 2023-03-21
    • 2017-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-30
    • 2015-05-12
    相关资源
    最近更新 更多