본문 바로가기
IT/Python

사진을 보고 낮인지 저녁인지 간단한 코드로 판단

by Jang HyunWoong 2018. 2. 20.

사진 input으로 nxn 행렬이 들어 온다. 
n 은 'Blue,Green, Red'
각 B, G, R은 0~255 RGB채널이다. 

예를들어, 
90,90,50    90,90,10    255,255,255 
100,100,88    80,80,80    15,75,255 
...
이렇게 값이 들어오는 사진이 있다면, 

이 사진이 낮에 찍은 것인지, 밤에 찍은 것인지 판단해보자.

아래 파이썬코드로 헀을 시, 정밀하지 않지만 대충 잘 판별이 된다. 

result = [] while True: try: data = [[int(j) for j in i.split(',')] for i in input().split(' ')] for k in range(len(data)): adder = 0 for m in range(3): adder += data[k][m] if adder > 240: result.append("blight") else: result.append("dark") except (EOFError): break #end of file reached if result.count("blight") > result.count("dark"): print("day") else: print("night")

*느낀점
b+g+r을 더했을 때, 240이 넘어가면 그 픽셀은 밝다고 여겼다. 
전체적인 카운트를 세서 day냐 night냐 판별했는데
굉장히 간단하게 나왔다. 

하지만 분명 모든 사진에 적용되지 않는다. 
만약 검은 옷을 입고 사진을 찍는다면 사진에서 검은 옷 비율이 많았다면 이건 night로 판명하기 때문이다. 

조금 더 나아 간다면
픽셀에서 중앙 부분보다는 엣지 주변에 가중치를 줘서 판별한다면(배경고려)
조금 더 정확한 판단이 나올 수 있을 것 같다.


반응형

'IT > Python' 카테고리의 다른 글

여러개의 DB를 Django 장고에 연동시키기  (0) 2018.11.12
/usr/bin/python3: No module named pip  (0) 2018.02.23
matplotlib 라이브러리 사용할 때 imread() 오류  (0) 2018.02.20
numpy 설치, basic  (0) 2018.02.20
pandas 기초, series  (0) 2018.02.20