반응형

@ 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년 전에... 하~ 그리고 프로그램 세계에서 발을 뺐었으니...

아무튼 그때는 너무 복잡했던 기억이 있는데

얘는 쉽네 ㅎ

 

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기