import cv2
import numpy as np
net = cv2.dnn.readNetFromTorch('models/eccv16/starry_night.t7') # 모델 읽어오기
img = cv2.imread('imgs/01.jpg')
h, w, c = img.shape
img = cv2.resize(img, dsize=(500, int(h / w * 500))) # 가로 500에 비율 맞춰서 리사이즈
MEAN_VALUE = [103.939, 116.779, 123.680] # 가장 성능이 좋은 값
blob = cv2.dnn.blobFromImage(img, mean=MEAN_VALUE) # 전처리 하는데 좋음 차원 변형을 해줌 차원 늘림 여기까지가 전처리
net.setInput(blob) # 전처리 결과를 인풋으로 지정
output = net.forward() # 추론 끝 컴퓨터만 이해할수있음 여기는
output = output.squeeze().transpose((1, 2, 0)) # 후처리 코드 시작 인간이 이해할 수 있게 바꾸기 차원 줄임, 차원 변형 거꾸로 해주기
output += MEAN_VALUE # 위에서 meanvalue 빼준거 더해주기
output = np.clip(output, 0, 255) # meanvalue 더해주면 가끔씩 255를 초과하는 경우가 생겨서 제한해주기
output = output.astype('uint8') # 정수형태로 바뀌면서 사람이 볼수있게 바뀜
np.concatenate([output, output2], axis=1) # 사진 합치기 axis 1은 x방향으로 합치기