영상처리/OpenCV
이미지 연결
성혜영
2022. 6. 7. 14:25
서로 다른 이미지를 이어 붙여 하나의 이미지로 만드는 기능. 서로 다른 이미지를 병합해 하나의 이미지로 만들거나, 알고리즘 적용 전 이미지와 후 이미지를 상호비교하기 위해 사용
# 수평 이미지 연결 함수
dst = cv2.hconcat(
src
)
# 수직 이미지 연결 함수
dst = cv2.vconcat(
src
)
이미지 연결 함수 : 입력 이미지 배열(src)을 수평 또는 수직 방향으로 연결해 출력 이미지(dst) 반환. 연결할 이미지는 같은 채널과 정밀도를 가져야 하며, 다를 경우 연결 불가
수평 이미지 연결 함수 : 입력된 이미지들이 동일한 행(높이)을 가져야 함
수직 이미지 연결 함수 : 입력된 이미지들이 동일한 열(너비)을 가져야 함
반환 이미지 : 원본 이미지와 동일한 채널, 정밀도 및 원본 이미지들의 행 또는 열의 합계
#이미지 연결 적용
import cv2
import numpy as np
one = cv2.imread("one.jpg")
two = cv2.imread("two.jpg")
three = cv2.imread("three.jpg")
four = cv2.imread("four.jpg")
horizontal1 = np.full((50, one.shape[1], 3), [0, 0, 0], dtype=np.uint8)
horizontal2 = np.full((50, two.shape[1], 3), (0, 0, 0), dtype=np.uint8)
left = cv2.vconcat((one, horizontal1, three))
# left = np.vstack((one, horizontal1, three))
# right = cv2.vconcat((two, horizontal2, four))
right = np.vstack((two, horizontal2, four))
vertical = np.full((left.shape[0], 50, 3), 0, dtype=np.uint8)
dst = cv2.hconcat((left, vertical, right))
# dst = np.hstack((left, vertical, right))
# dst = np.concatenate((left, line, right), axis=1)
cv2.imshow("dst", dst)
cv2.waitKey()
cv2.destroyAllWindows()
제공되는 이미지 사이마다 검은색 배경을 갖는 이미지를 포함시켜 연결.
즉, 4개의 이미지를 연결하는것이 아닌 총 7개의 이미지 연결
검은 배경 이미지 생성을 위해 np.full()이나 np.zeros() 사용
임의의 이미지 생성시 동일한 정밀도를 위해 dtype 설정
이외에도 numpy를 사용해 np.stack(), np.concatenate() 함수를 이용해 이미지 연결