>source

그래서 두 개의 이미지를 파노라마 스타일로 연결하고 싶습니다. 그래서 제가 계획한 것은 다음과 같습니다. image1 너비의 두 배인 흰색 이미지(예: color= 255, 255, 255)를 만듭니다. img1을 이 결과 이미지의 왼쪽(상단)에 복사합니다. 이는 픽셀 좌표의 항등 변환을 의미합니다. img2를 추정된 호모그래피의 역으로 ​​워핑하여 결과 이미지에 복사합니다(dst_pts를 src_pts에 매핑함).

그러나 최종 결과는 배경을 검은색으로 설정했을 뿐만 아니라 첫 번째 이미지 위에 두 번째 이미지를 겹쳤습니다. 내가 무엇을 잘못하고 있지?

code는 다음과 같습니다.

def panorama(img1, img2, H, size):
   I= np.linalg.inv(H)
   img= np.zeros(size,dtype=np.uint8)
   img.fill(255)
   img= cv2.warpPerspective(img1, np.identity(3), size, img, borderMode=cv2.BORDER_TRANSPARENT)
   img= cv2.warpPerspective(img2, I, size, img, flags=cv2.WARP_INVERSE_MAP+cv2.INTER_LINEAR, borderMode=cv2.BORDER_TRANSPARENT)
  return img
size= (2 * image1.shape[0],image1.shape[1])
imshow([panorama(image1, image2, H, size)],["Panorama"])

세 번째 이미지로 워프하고 검정이 아닌 모든 픽셀을 대상 이미지에 복사합니다. 워핑에는 블렌딩이 포함되어 있지 않으므로 추가 단계가 필요합니다.

Micka2021-10-15 00:39:11

마지막 줄의 H는 무엇입니까? 무엇이 잘못되었는지 보기 위해 결과를 공유하는 것이 더 나을 수 있습니다.

Yunus Temurlenk2021-10-15 00:39:11
  • 이전 RxSwift 속성 값을 어떻게 읽을 수 있습니까? <드라이버>불
  • 다음 fortran : .FOR 파일을 컴파일하는 방법(무료?)?