Случайным образом скопируйте прямоугольную случайную область и вставьте ее на другое изображение - PullRequest
0 голосов
/ 06 мая 2018

Я пытался скопировать прямоугольную случайную область с шириной и высотой в [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

Edit: Ниже приведены значения переменных. Изображения имеют произвольную форму, мне нужно выбрать донорское изображение, обрезать патч и поместить его в приемник.

I_rcv: (3648, 2736, 3)
I_dnr: (2304, 3072, 3)
dnr_patch: (425, 91, 3)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...