샤프닝에 대한 자세한 설명 참고
https://aytekin.tistory.com/121
결과
코드전문
import sys
import numpy as np
import cv2
# 슬라이드 바를 이용해서 alpha값을 조정하도록 하고 그 결과로 sharpening 정도를 조절하도록 구현해보기.
# color 이미지
src = cv2.imread('rose.bmp')
if src is None:
print('Image load failed!')
sys.exit()
cv2.namedWindow("TrackBar Windows")
cv2.createTrackbar("alpha","TrackBar Windows",0,10, lambda x: x)
cv2.createTrackbar("sigma","TrackBar Windows",0,5, lambda x: x)
cv2.setTrackbarPos("alpha","TrackBar Windows",0)
cv2.setTrackbarPos("sigma","TrackBar Windows",1)
cv2.setTrackbarMin("sigma","TrackBar Windows",1)
while cv2.waitKey(1) != ord('q'):
alpha = cv2.getTrackbarPos('alpha','TrackBar Windows') * 0.5
sigma = cv2.getTrackbarPos('sigma','TrackBar Windows') * 0.5
src_ycrcb = cv2.cvtColor(src, cv2.COLOR_BGR2YCrCb)
src_f = src_ycrcb[:, :, 0].astype(np.float32)
blr = cv2.GaussianBlur(src_f, (0,0), sigma)
src_ycrcb[:, :, 0] = np.clip((1+alpha)*src_f - (alpha * blr), 0, 255).astype(np.uint8) # 2.*src - blr 이 수식이 sharpening해주는 부분
dst = cv2.cvtColor(src_ycrcb, cv2.COLOR_YCrCb2BGR)
cv2.imshow('src',src)
cv2.imshow('blr',src_ycrcb[:, :, 0])
cv2.putText(dst,'alpha : {}, sigma : {}'.format(alpha, sigma),(10,25),cv2.FONT_HERSHEY_SIMPLEX,1, (255,255,255), 2, cv2.LINE_AA)
cv2.imshow("TrackBar Windows", dst)
cv2.destroyAllWindows()
728x90
'파이썬 python > opencv' 카테고리의 다른 글
cv2 Trackbar를 이용해서 샤프닝 필터 구현하기(unsharpening) (0) | 2023.05.04 |
---|