【发布时间】:2019-09-08 04:18:05
【问题描述】:
我正在尝试将高斯噪声添加到图像的单个通道中。
import cv2 as cv
import numpy as np
img1 = cv.imread('input/foo.png')
img1_blue, img1_green, img1_red = cv.split(img1)
img1_h, img1_w, _ = img1.shape
s = 5
noise = np.random.normal(0, s, (img1_h, img1_w))
img1_gn = img1_green + noise
print(img1_green.shape) # (512, 384)
print(img1_gn.shape) # (512, 384)
print(img1_blue.shape) # (512, 384)
img1_g_noise = cv.merge((img1_blue, img1_gn, img1_red))
这会导致以下错误:
---------------------------------------------------------------------------
error Traceback (most recent call last)
<ipython-input-34-049cf9e65133> in <module>
13
---> 14 img1_g_noise = cv.merge((img1_blue, img1_gn, img1_red))
15
error: OpenCV(3.4.5) /io/opencv/modules/core/src/merge.cpp:293: error: (-215:Assertion failed) mv[i].size == mv[0].size && mv[i].depth() == depth in function 'merge'
我不确定这是如何发生的,或者为什么会发生。生成的嘈杂绿色通道与其他两个通道具有相同的尺寸和类型。重新组合原来的绿色通道就可以了。任何转向方向表示赞赏,并提前感谢您。
【问题讨论】:
标签: python-3.x numpy opencv