반응형
안녕하세요.
이번 글에서는 Python에서 이미지끼리 붙이는 코드 예시를 다루어보도록 하겠습니다.
다음과 같은 이미지 두 장이 있다고 가정하겠습니다.
(pixabay에서 다운 받은 이미지들입니다.)
![]() |
![]() |
이 사진 두 장을 가로 / 세로 방향으로 병합하는 코드를 각각 살펴보겠습니다.
(이 글에서는 두 이미지의 크기가 같다고 가정합니다.)
1. 가로 방향 이미지 병합
다음은 가로 방향으로 이미지를 합치는 코드 예시입니다.
만일, PIL 모듈 설치가 필요하다면 !pip install Pillow 명령어로 설치를 진행해주세요.
from PIL import Image
# 가로 방향으로 이미지를 붙이는 코드
def concat_images_horizontally(img_path1, img_path2, output_path):
# 1. 이미지 열기
image1 = Image.open(img_path1)
image2 = Image.open(img_path2)
# 2. 각각의 이미지 너비, 높이 구하기
w1, h1 = image1.size
w2, h2 = image2.size
# 3. 새로운 이미지의 크기 계산(너비가 두배)
new_width = w1 + w2
new_height = max(h1, h2)
# 4. 새로운 이미지 객체 생성
new_image = Image.new('RGB', (new_width, new_height))
# 5. 새로운 이미지에 두 이미지를 차례대로 붙이기
new_image.paste(image1, (0, 0))
new_image.paste(image2, (w1, 0)) # 오른쪽에 붙임
# 6. 결과 저장
new_image.save(output_path)
if __name__ == "__main__":
# 합칠 두 이미지와 새롭게 저장할 이미지의 경로를 입력
concat_images_horizontally("cat.jpg", "dog.jpg", "horizontal_concat.jpg")

2. 세로 방향 이미지 병합
이번엔 세로 방향으로 이미지를 붙이는 코드 스니펫 예시입니다.
from PIL import Image
# 세로 방향으로 이미지를 붙이는 코드
def concat_images_vertically(img_path1, img_path2, output_path):
# 1. 이미지 열기
image1 = Image.open(img_path1)
image2 = Image.open(img_path2)
# 2. 각각의 이미지 너비, 높이 구하기
w1, h1 = image1.size
w2, h2 = image2.size
# 3. 새로운 이미지의 크기 계산(높이가 두배)
new_width = max(w1, w2)
new_height = h1 + h2
# 4. 새로운 이미지 객체 생성
new_image = Image.new('RGB', (new_width, new_height))
# 5. 새로운 이미지에 두 이미지를 차례대로 붙이기
new_image.paste(image1, (0, 0))
new_image.paste(image2, (0, h1)) # 아랫쪽에 붙임
# 6. 결과 저장
new_image.save(output_path)
if __name__ == "__main__":
# 합칠 두 이미지와 새롭게 저장할 이미지의 경로를 입력
concat_images_vertically("cat.jpg", "dog.jpg", "vertical_concat.jpg")

소소한 내용이지만 이미지 전/후처리 작업에 도움이 되셨기를 기원합니다.
감사합니다.
'Python > Vision Code' 카테고리의 다른 글
파이썬에서 이미지 간 유사도 지표 LPIPS 계산 방법 (0) | 2025.03.25 |
---|---|
[OpenCV] 파이썬 사물 인식(Object Detection) 실습 코드 예제 (2) | 2022.08.11 |
파이썬 이미지 데이터 증강 모듈 : imgaug (0) | 2022.08.02 |