Я работаю над панорамой с Python OpenCV. Может ли кто-нибудь показать мне, как избавиться от черных линий на моих окончательных изображениях? Я думаю, может быть, мне следует сначала проверить цвет, т.е. 0,0,0, прежде чем копировать его в изображение атласа, но я не совсем уверен, как это сделать.
def warpTwoImages(img1, img2, H):
'''warp img2 to img1 with homograph H'''
h1,w1 = img1.shape[:2]
h2,w2 = img2.shape[:2]
pts1 = np.float32([[0,0],[0,h1],[w1,h1],[w1,0]]).reshape(-1,1,2)
pts2 = np.float32([[0,0],[0,h2],[w2,h2],[w2,0]]).reshape(-1,1,2)
pts2_ = cv2.perspectiveTransform(pts2, H)
pts = np.concatenate((pts1, pts2_), axis=0)
[xmin, ymin] = np.int32(pts.min(axis=0).ravel() - 0.5)
[xmax, ymax] = np.int32(pts.max(axis=0).ravel() + 0.5)
t = [-xmin,-ymin]
Ht = np.array([[1,0,t[0]],[0,1,t[1]],[0,0,1]]) # translate
result = cv2.warpPerspective(img2, Ht.dot(H), (xmax-xmin, ymax-ymin))
result[t[1]:h1+t[1],t[0]:w1+t[0]] = img1
return result
Amitay Nachmani
код для лучшего понимания? Как я пытался перед обертыванием, также в начале, но выдавал мне ошибки, такие как неправильный тип ввода. Пожалуйста, поделитесь своим решением. Спасибо. - person ganesh   schedule 30.07.2021