Я пытаюсь заменить правую боковую дорогу следующего изображения на светло-желтый многоугольник:
происхождение :
![enter image description here](https://i.stack.imgur.com/L2D6f.png)
желательно (создано вручную):
![enter image description here](https://i.stack.imgur.com/IPaDm.png)
Так что я думаю использовать Гомографию , чтобы это произошло (я знаю, что просто добавление заполненного многоугольника тоже будет работать, но я могу использовать другие исходные изображения, кроме простого желтого полигон, такой как рекламные картинки в будущем). Это учебник , и я просто скопировал в него код и внес некоторые изменения в пиксели. Исходное изображение, которое я использую, выглядит следующим образом:
![enter image description here](https://i.stack.imgur.com/ABWza.jpg)
И первое изображение в этом посте - это изображение моего назначения.
Вот мой код для выполнения работы:
import cv2
import numpy as np
# source image
source_img = cv2.imread('lightyellow.jpg')
# get four corners of the source (clock wise)
pts_source = np.array([[0,0], [20,0], [20,30],[0,30]])
# destination image
dst_img = cv2.imread('0.png')
# four corners in destination image (also clock wise):
pts_dst = np.array([[292,0], [415,0], [578,120],[415,189]])
# calculate homography
h, status = cv2.findHomography(pts_source, pts_dst)
# warp source image to destination based on homography
img_out = cv2.warpPerspective(source_img, h, (dst_img.shape[1], dst_img.shape[0]))
cv2.imshow('warped', img_out)
cv2.waitKey(0)
Однако то, что я получил, выглядит примерно так:
![enter image description here](https://i.stack.imgur.com/5VGX6.png)
Это совершенно неправильно, но я не знаю почему. Может ли кто-нибудь дать мне инструкцию?