반응형
@ 24-사진을 그림을
1. 사진을 다운 받아 적당히 줄인 뒤 스타일링한다.
2. 트랙바를 만들어 설정값을 조정한다.
1. 사진을 적당히 줄이고 스타일링 하기
from bdb import Breakpoint
import numpy as np
import cv2
# 원본 이미지 읽어오기 / 출력
path = np.fromfile(r'24_Pic2Art\testPic.jpg')
img = cv2.imdecode(path, cv2.IMREAD_UNCHANGED)
cv2.imshow('1',img)
# 리사이징 - 절반 크기로 / 출력
img = cv2.resize(img, dsize = (0,0), fx=0.5, fy=0.5, interpolation=cv2.INTER_LINEAR)
cv2.imshow('2',img)
# 카툰 이미지 변환 / 출력
cartoon_img = cv2.stylization(img, sigma_s=1.0, sigma_r=0.1)
cv2.imshow('3',cartoon_img)
# 키 눌리면 창 닫기
cv2.waitKey(0)
cv2.destroyAllWindows()
결과.
2. 트랙바 만들어서 값 변경
import numpy as np
import cv2
# 원본 이미지 읽어오기 / 출력
path = np.fromfile(r'24_Pic2Art\testPic.jpg')
img = cv2.imdecode(path, cv2.IMREAD_UNCHANGED)
cv2.imshow('1',img)
# 리사이징 - 절반 크기로 / 출력
img = cv2.resize(img, dsize = (0,0), fx=0.5, fy=0.5, interpolation=cv2.INTER_LINEAR)
cv2.imshow('2',img)
# 트랙바 값이 바뀔 때 마다 호출되는 콜백함수
def onChange(pos):
pass
# 빈 윈도우 생성
cv2.namedWindow('Trackbar Windows')
# 트랙바 2개 만듬, 트랙바 이름, 윈도우 이름, 최소, 최대, 콜백
cv2.createTrackbar('sigma_s', 'Trackbar Windows', 0, 200, onChange)
cv2.createTrackbar('sigma_r', 'Trackbar Windows', 0, 100, onChange)
# 트랙바 초기값 설정
cv2.setTrackbarPos('sigma_s', 'Trackbar Windows', 100)
cv2.setTrackbarPos('sigma_r', 'Trackbar Windows', 10)
# q가 눌릴때 까지 계속
while(True):
if cv2.waitKey(100) == ord('q'):
break
# 트랙바 값 가져오기
sigma_s_value = cv2.getTrackbarPos('sigma_s', 'Trackbar Windows')
sigma_r_value = cv2.getTrackbarPos('sigma_r', 'Trackbar Windows') / 100.0
# 터미널에도 출력해 주고
print('sigma_s_value:', sigma_s_value)
print('sigma_r_value:', sigma_r_value)
# 카툰 이미지 변환할 때 트랙바 값 활용 / 출력
cartoon_img = cv2.stylization(img, sigma_s_value, sigma_r_value)
cv2.imshow('Trackbar Windows',cartoon_img)
cv2.destroyAllWindows()
결과.
음~ 아주 좋아~
뭔가 뚝딱 하고 윈도우가 생기는 것도 좋고
트랙바를 만드는 것도 좋네.
윈도우 프로그래밍은 예전에 C# 했었을때... 15년 전에... 하~ 그리고 프로그램 세계에서 발을 뺐었으니...
아무튼 그때는 너무 복잡했던 기억이 있는데
얘는 쉽네 ㅎ
반응형
최근댓글