首页 > 解决方案 > 随机复制一个矩形随机区域并将其粘贴到numpy中的另一个图像上

问题描述

我一直在尝试在 [128, 1024] 中复制一个具有宽度和高度的矩形随机区域,但有时我会遇到

---> 29 I_rcv[a:b, c:d] = dnr_patch
     30 pyplot.imshow(I_rcv)

ValueError: could not broadcast input array from shape (425,91,3) into shape (959,91,3)

这是我的代码

rcv = "path/to/image/RCV.JPG"
dnr_1 = "path/to/image/DNR.JPG"

I_rcv = cv2.imread(rcv)
I_dnr = cv2.imread(dnr_1)
a = random.randint(0, min(I_dnr.shape[0] - 1024, I_rcv.shape[0] - 1024))
b = a + random.randint(1, 1024)
c = random.randint(0, min(I_dnr.shape[0] - 128, I_rcv.shape[0] - 128))
d = c + random.randint(1, 128)
dnr_patch = np.copy(I_dnr[a:b,c:d])
I_rcv[a:b, c:d] = dnr_patch

编辑:以下是变量值。图像是随机形状的,我需要选择供体图像,裁剪一个补丁并将其放置到接收器。

I_rcv: (3648, 2736, 3)
I_dnr: (2304, 3072, 3)
dnr_patch: (425, 91, 3)

标签: pythonnumpy

解决方案


推荐阅读