22. White balance
페이지 정보
작성자 관리자 댓글 0건 조회 4,704회 작성일 20-10-05 07:46본문
22. White balance
AWB(자동 화이트 밸런스) 알고리즘은 최소한의 사용자 입력으로 주변광에 맞게 수정하여 육안으로 볼 때와 가까운 결과 영상을 만듭니다.
자동 화이트 밸런스는 2단계를 거칩니다.
1단계: 장면 조도를 추정합니다.
2단계: 영상의 색 밸런스를 보정합니다.
가장 까다로운 동시에 집중적으로 최적화할 단계는 1단계, 주변광 추정입니다.
일단 주변광이 파악되면, 영상의 색을 보정하는 작업(2단계)은 쉽고 고정된 절차로 해결됩니다.
Grayworld assumption에 의해 계산 된 보상은 고르게 조명 된 흰색 종이 또는 이와 유사한 디지털 스틸 및 비디오 카메라에 의해 수행 된 측정의 근사치입니다.
# -*- coding: utf-8 -*-
# White balance/Grayworld assumption
import cv2 as cv
import numpy as np
def show(final):
print ('display')
cv.imshow("Temple", final)
cv.waitKey(0)
cv.destroyAllWindows()
def saveimg(final):
print ('saving')
cv.imwrite("result.jpg", final)
if __name__ == "__main__":
# Insert any filename with path
img = cv.imread("grayworld_assumption_0.PNG")
res = img
final = cv.cvtColor(res, cv.COLOR_BGR2LAB)
avg_a = np.average(final[:, :, 1])
avg_b = np.average(final[:, :, 2])
for x in range(final.shape[0]):
for y in range(final.shape[1]):
l, a, b = final[x, y, :]
# fix for CV correction
l *= 100 / 255.0
final[x, y, 1] = a - ((avg_a - 128) * (l / 100.0) * 1.1)
final[x, y, 2] = b - ((avg_b - 128) * (l / 100.0) * 1.1)
final = cv.cvtColor(final, cv.COLOR_LAB2BGR)
final = np.hstack((res, final))
show(final)
saveimg(final)
댓글목록
등록된 댓글이 없습니다.