사용자 도구

사이트 도구


project:detectsponsor

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판이전 판
다음 판
이전 판
project:detectsponsor [2013/07/08 10:06] – [결과 분석] ::1project:detectsponsor [2014/10/09 21:24] (현재) – 바깥 편집 127.0.0.1
줄 74: 줄 74:
  
   $ convert -threshold 50% input.png   $ convert -threshold 50% input.png
 + 
 'threshold가 뭐야?' 라고 궁금해 하실 분들이 있을 지 모르겠습니다. Threshold란 사전적 의미 그대로는 '한계점, 기준치, 문턱'입니다. "어떤 값이 기준치를 넘겼다, 넘기지 못했다"라고 말할 때의 그 '기준치'를 말합니다. (이미지 출처: http://www.svi.nl/SeedAndThreshold) 'threshold가 뭐야?' 라고 궁금해 하실 분들이 있을 지 모르겠습니다. Threshold란 사전적 의미 그대로는 '한계점, 기준치, 문턱'입니다. "어떤 값이 기준치를 넘겼다, 넘기지 못했다"라고 말할 때의 그 '기준치'를 말합니다. (이미지 출처: http://www.svi.nl/SeedAndThreshold)
 {{ http://www.svi.nl/wikiimg/SeedAndThreshold_02.png?nolink | threshold  }} {{ http://www.svi.nl/wikiimg/SeedAndThreshold_02.png?nolink | threshold  }}
줄 84: 줄 84:
  
 convert는 입력된 그림파일의 픽셀을 일일이 검사합니다. 보통 픽셀은 보통 0~255의 단계값을 가집니다. 0이면 완전히 검은색, 255면 완전히 밝은 흰색입니다. 위 convert 명령의 예제는 그림의 펙셀에서 밝기 값이 50% 이상인 값은 100% 값을 가지고, 그렇지 못하면 0으로 만들라는 뜻입니다. 보다 알기 쉽게 예를 들어 보도록 하지요 5개의 픽셀이 있습니다. 각 픽셀은 다음과 같은 밝기를 가집니다. convert는 입력된 그림파일의 픽셀을 일일이 검사합니다. 보통 픽셀은 보통 0~255의 단계값을 가집니다. 0이면 완전히 검은색, 255면 완전히 밝은 흰색입니다. 위 convert 명령의 예제는 그림의 펙셀에서 밝기 값이 50% 이상인 값은 100% 값을 가지고, 그렇지 못하면 0으로 만들라는 뜻입니다. 보다 알기 쉽게 예를 들어 보도록 하지요 5개의 픽셀이 있습니다. 각 픽셀은 다음과 같은 밝기를 가집니다.
-  6030, 48, 4090 +  160120, 48, 140230 
-다섯  픽셀 중 가장 높은 값은 90입니다. 90의 50%는 45이므로 위 명령을 이 다섯 픽셀에 대해 수행해 봅니다. +가장 높은 값인 255의 50%는 127.5입니다. 
-  * 60 45 --> 90 +  * 160  127.5 --> 255 
-  * 30 45 --> 0 +  * 120  127.5 --> 0 
-  * 48 > 45 --> 90 +  * 48  < 127.5 --> 0 
-  * 40 < 45 --> 0 +  * 140 >  127.5 --> 255 
-  * 90 45 --> 90+  * 230  127.5 --> 255
 그러므로 결과는  그러므로 결과는 
-  90, 0, 90, 0, 90 +  255, 0, 0, 255, 255 
-모든 픽셀 값이 90, 아니면 0으로 현격하게 갈립니다. 그러면 직접 convert를 그림 파일에 대해 직접 실행한 결과를 보도록 하지요. 대략 97% 정도를 threshold 값으로 주었을 때의 결과입니다.+모든 픽셀 값이 255, 아니면 0으로 현격하게 갈립니다. 그러면 직접 convert를 그림 파일에 대해 직접 실행한 결과를 보도록 하지요. 대략 97% 정도를 threshold 값으로 주었을 때의 결과입니다.
  
 {{ :project:detectsponsor:test01_mono.png?640 |}} {{ :project:detectsponsor:test01_mono.png?640 |}}
줄 113: 줄 113:
 === 첫번째 시도 방법 === === 첫번째 시도 방법 ===
 === 구현 과정 === === 구현 과정 ===
-위 재료를 잘 버무리면 뭐 그런대로 괜찮은 결과가 나오리라 생각했습니다. 첫번째는 거의 쉘 스크립트에 가깝습니다만, 파이썬으로 만들도록 하지요. 쉘 스크립트를 만들면 윈도우 사용자들이 아마 불편하실거에요 ;-) +위 재료를 잘 버무리면 뭐 그런대로 괜찮은 결과가 나오리라 생각했습니다. 첫번째는 거의 쉘 스크립트에 가깝습니다만, 파이썬으로 만들도록 하지요. 쉘 스크립트를 만들면 윈도우 사용자들이 아마 불편하실거에요 ;-) 대신 파이썬이라 할지라도 마치 쉘 스크립트와 유사하게 커맨드 라인을 실행하는 방식으로 1차 구현을 할 생각입니다. 라이브러리를 사용하는 게 아니라요.
-딱히 파이썬에서 라이브러리 정도를 만드는 것이 닌, 명령어를 파이썬이 호출해서 쓰는 매우 심플한 형태로 만들어보았습.+
  
 파이썬에서 외부 명령을 실행하는 가장 간단한 방법 중 하나는 os.system()을 이용하는 것입니다. 이것을 이용해 원본 동영상에서 일정 간격으로 한 프레임을 얻어내고, 그 한 프레임이 스폰서 영상인지 아닌지를 'convert' 프로그램과 'tasseract' 프로그램이 판단하는 것입니다. 정말 무식한 방법입니다만, 현재로서는 스마트한 방법 따위는 머릿속에 떠오르지 않네요. 그리고 정말 이 방법이 동영상에 대해서도 통하는지 의문이구요. 파이썬에서 외부 명령을 실행하는 가장 간단한 방법 중 하나는 os.system()을 이용하는 것입니다. 이것을 이용해 원본 동영상에서 일정 간격으로 한 프레임을 얻어내고, 그 한 프레임이 스폰서 영상인지 아닌지를 'convert' 프로그램과 'tasseract' 프로그램이 판단하는 것입니다. 정말 무식한 방법입니다만, 현재로서는 스마트한 방법 따위는 머릿속에 떠오르지 않네요. 그리고 정말 이 방법이 동영상에 대해서도 통하는지 의문이구요.
project/detectsponsor.1373277960.txt.gz · 마지막으로 수정됨: 2014/10/09 21:23 (바깥 편집)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki