【发布时间】:2020-09-21 20:23:46
【问题描述】:
我只是导入了一张图片。 我想将每个 BGR 通道与零数组合并,然后显示它们。 我的代码如下:
import cv2
import numpy as np
image = cv2.imread('./images/input.jpg')
B, G, R = cv2.split(image)
zeros = np.zeros((image.shape[:2]), dtype = 'int8')
cv2.imshow("Red", cv2.merge([zeros1, zeros1, R]))
cv2.imshow("Green", cv2.merge([zeros, G, zeros]))
cv2.imshow("Blue", cv2.merge([B, zeros, zeros]))
cv2.waitKey(500)
cv2.destroyAllWindows()
运行此代码后,我收到以下错误。
error Traceback (most recent call last)
<ipython-input-13-9252d63ed763> in <module>
7 zeros = np.zeros((image.shape[:2]), dtype = 'int8')
8
----> 9 cv2.imshow("Red", cv2.merge([zeros1, zeros1, R]))
10 cv2.imshow("Green", cv2.merge([zeros, G, zeros]))
11 cv2.imshow("Blue", cv2.merge([B, zeros, zeros]))
error: OpenCV(4.1.1) C:\projects\opencv-python\opencv\modules\core\src\merge.dispatch.cpp:129: error: (-215:Assertion failed) mv[i].size == mv[0].size && mv[i].depth() == depth in function 'cv::merge'
这对我来说似乎是正确的。有什么问题,我该如何解决?
【问题讨论】:
-
zeros1是什么?在任何地方都看不到它......应该是NameError。 -
您可以从
zeros = np.zeros_like(B)中受益,它可以让您轻松获得相同的形状和 dtype。
标签: python image opencv merge channel