OpenCV

warming/cooling

728x90

warming

import cv2
import numpy as np

original = cv2.imread('data/images/girl.jpg')

img = original.copy()

#X축 피벗포인트
originalValue = np.array([0, 50,100,150,200,255])

#Y축 포인트 : 빨간쪽, 파란쪽 두 부분의 포인트/ opencv 51번 사진 참고
rCurve = np.array([0,80,150,190,220,255])
bCurve = np.array([0,20,40,75,150,255])

#Lookup Table 만들기 : 6개의 점으로 256개의 점 만들기
fullRange = np.arange(0,255+1)
rLUT = np.interp(fullRange, originalValue, rCurve)
bLUT = np.interp(fullRange, originalValue, bCurve)

print(rLUT)
print(rLUT.shape)

rChannel = img[:,:,2]
#B,G,rChannel = cv2.split(img)
rChannel = cv2.LUT(rChannel,rLUT)

img[:,:,2]=rChannel

bChannel = img[:,:,0]
bChannel = cv2.LUT(bChannel,bLUT)

img[:,:,0] = bChannel

#화면
combined = np.hstack([original, img])

cv2.imshow('comb', combined)

cv2.waitKey(0)
cv2.destroyAllWindows()

 

cooling

import cv2
import numpy as np

original = cv2.imread('data/images/girl.jpg')

img = original.copy()

#X축 피벗포인트
originalValue = np.array([0, 50,100,150,200,255])

#Y축 포인트 : 빨간쪽, 파란쪽 두 부분의 포인트/ opencv 51번 사진 참고
rCurve = np.array([0,20,40,75,150,255])
bCurve = np.array([0,80,150,190,220,255])

#Lookup Table 만들기 : 6개의 점으로 256개의 점 만들기
fullRange = np.arange(0,255+1)
rLUT = np.interp(fullRange, originalValue, rCurve)
bLUT = np.interp(fullRange, originalValue, bCurve)

print(rLUT)
print(rLUT.shape)

rChannel = img[:,:,2]
#B,G,rChannel = cv2.split(img)
rChannel = cv2.LUT(rChannel,rLUT)

img[:,:,2]=rChannel

bChannel = img[:,:,0]
bChannel = cv2.LUT(bChannel,bLUT)

img[:,:,0] = bChannel

#화면
combined = np.hstack([original, img])

cv2.imshow('comb', combined)

cv2.waitKey(0)
cv2.destroyAllWindows()

 

728x90

'OpenCV' 카테고리의 다른 글

boxfilter  (0) 2021.04.20
convolution  (0) 2021.04.20
gamma  (0) 2021.04.20
contrast HistEq  (0) 2021.04.20
contrast Scaling 대비  (0) 2021.04.20