데이터사이언스/데이터 지식

합성 사진 제작(트랙바로 조절)

박윤서 2022. 5. 9. 16:39

 

import cv2
global img1, img2 # 두 이미지를 프로그램의 전체에서 사용할 수 있도록 한다.

def on_change_weight(x): #상단 트랙바 막대가 움직이게 되면 이 함수가 호출된다
  weight = x / 100 # x값이 0에서 100사이이므로 100으로 나눠서 0에서 1사이 값으로 바꿔준다.
  img_merged = cv2.addWeighted(img1, 1-weight, img2, weight, 0) #addweighted 사용해서 투명도 조절
  cv2.imshow('Display', img_merged)

cv2.namedWindow('Display')
cv2.createTrackbar('weight', 'Display', 0, 100, on_change_weight)
#createTrackbar(조절할 값의 이름, 부착할 창 이름, 최솟값, 최댓값, 변경시 호출될 함수)

img1 = cv2.imread('C:/Users/yunse/images/green_back.png') # 두 장의 이미지를 겹쳐둔다.
img2 = cv2.imread('C:/Users/yunse/images/iceberg.jpg')
img1 = cv2.resize(img1, (300,300))
img2 = cv2.resize(img2, (300,300))

cv2.waitKey(0)
cv2.destroyAllWindows() #파이썬의 한계, 커널 죽지 않도록 반드시 써주어야 한다.

사진 두 개를 겹쳐서 합성 사진을 제작할 때 트랙바를 사용하여 투명도를 조절하는 코드를 작성하였다.

 

결과물이다.