import numpy as np
import cv2 as cv
import matplotlib.pyplot as plt
# 이미지 불러오고 정규화
Path = 'D:/dip/'
Name = 'dark1.png'
FullName = Path+Name
img = cv.imread(FullName,1)
img=img/255.0
cv.namedWindow('Brighter image')
# scale 트랙바 움직일때 호출되는 콜백 함수
def Change_scale(pos) :
global img2
bar = cv.getTrackbarPos("scale", "Brighter image") #-> scale값을 bar에 저장할 수 있다
scale = 1+pos*0.1 # 트랙바 값에 따른 밝기의 정도
img2 = img.copy() * scale
img2=np.clip(img2,0,1)
addh = cv.hconcat([img,img2])
cv.putText(addh, 'Original', (50,50), cv.FONT_HERSHEY_SIMPLEX, 1,(0,0,255), 2)
cv.putText(addh, 'Brighter', (img.shape[1]+50, 50), cv.FONT_HERSHEY_SIMPLEX, 1, (0, 0, 255), 2)
cv.imshow('Brighter image',addh)
cv.createTrackbar('scale', # 밝기 조절 트랙바 이름
'Brighter image', # 창의 이름
15, # 슬라이더 초기 위치
30, # 슬라이더의 최댓값
Change_scale) # 슬라이더 움직일 때 호출될 콜백 함수의 이름
while True :
# s키를 누르면 img2가 저장됨
if cv.waitKey() == ord('s'):
bar = cv.getTrackbarPos("scale", "Brighter image")
filename = f'tmp{bar:#2d}_{Name[:-4]}.PNG'
# uint8로 변환해서 출력
cv.imwrite(filename,(img2*255).astype(np.uint8))
# esc(아스키코드값 : 27)를 누르면 while문 나가면서 프로그램 종료
if cv.waitKey() == 27 :
break
'전공 과목 이수2👨💻 > 디지털영상처리' 카테고리의 다른 글
얼굴 학습 훈련 (0) | 2021.12.15 |
---|---|
객체 트랙킹 (0) | 2021.12.15 |
다양한 영상처리 기법을 트랙바로 조절해보기 (0) | 2021.11.05 |
화질 개선 기법(감마, 시그모이드, 히스토그램, 샤프닝, 메디언) (0) | 2021.10.18 |
엣지검출 pyplot.imshow vs cv.imshow (0) | 2021.10.10 |
이미지 가로, 세로 평균필터링 적용 (0) | 2021.10.03 |