PYTHON 프로그래밍

본문 바로가기
사이트 내 전체검색


PYTHON 프로그래밍
PYTHON 프로그래밍

22. White balance

페이지 정보

작성자 관리자 댓글 0건 조회 4,719회 작성일 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)

댓글목록

등록된 댓글이 없습니다.


개인정보취급방침 서비스이용약관 모바일 버전으로 보기 상단으로

TEL. 063-469-4551 FAX. 063-469-4560 전북 군산시 대학로 558
군산대학교 컴퓨터정보공학과

Copyright © www.leelab.co.kr. All rights reserved.