🙋♂️ 오늘은 영상의 리매핑에 대해서 공부한 내용을 정리합니다!
✍ 리매핑(Remapping) 이란?
영상의 특정 위치 픽셀을 다른 위치에 재배치하는 일반적인 프로세스로써
이전 시간에 공부했었던 Affine Transform, Perspetive Transform 과같은 변환들도 리매핑을 통해 구현할 수 있습니다.
✅ 예제 코드
|
import sys
import numpy as np
import cv2
src = cv2.imread('tekapo.bmp')
if src is None:
print('Image load failed!')
sys.exit()
h, w = src.shape[:2]
map2, map1 = np.indices((h, w), dtype=np.float32)
# X로 200px Y로 100px 이동 변환을 remap으로 구현
dst = cv2.remap(src, map1 - 200, map2 - 100, cv2.INTER_CUBIC)
# sin 함수를 이용한 remap 구현, borderMode=cv2.BORDER_DEFAULT를 사용함으로써 검은색 화면 부분을 채움
map2 = map2 + 10 * np.sin(map1 / 32)
dst2 = cv2.remap(src, map1, map2, cv2.INTER_CUBIC, borderMode=cv2.BORDER_DEFAULT)
cv2.imshow('src', src)
cv2.imshow('dst', dst)
cv2.imshow('dst2', dst2)
cv2.waitKey()
cv2.destroyAllWindows()
|
cs |
🖼️ 결과 이미지

본 학습 내용은 "OpenCV를 활용한 컴퓨터비전과 딥러닝"을 참고하였음을 알려드립니다.