개발 관련/SW, App 관련

(과거게시물) VSL을 이용한 모션감지 테스트..

by 소서리스25 2023. 3. 26.
반응형

※ 과거 게시물은 현재의 모든 적용사항과 환경이 다를 수 있으며 단순한 기록으로 남깁니다.

 

VSL을 이용한 모션감지 테스트

 

지난번 그린컬러의 크로마키 이후 VSL에 대해서 다시금 코딩해 보았다.

 

또한 현재 IR카메라를 이용한 모션감지도 개발해야할 필요가 있다고 판단되어
적용키로 했다.
그래야 여러개의 프로그램이 동시 작동될 경우 꼬임이 적어질 수 있기 때문이다.

 

흔히 이용하는 곳은 인터렉티브 영상에 많이들 사용하는 것이다.
예를 들어 코엑스 행사장이나 전시장에 발로 밟으면 꿈틀거리거나 지워진 광고가
나오거나 물고기가 도망간다거나 등등 이와 같은 다양한 것들이 3D로 제작되어 있을
경우 해당 한다고 볼 수 있다 물론 2D로도 되겠지만 이는 2D 관련 툴(플래시등)에서
만드는 것이고 내가 제작하는 것은 3D에 해당한다.

 

기본적인 원리는
먼저 USB 카메라를 통해 화면에 보이는 컬러값을 읽어온다.
읽어 올때 R,G,B를 각각 분리한다.
미리 짜 놓은 VSL를 통해 gray의 평균 값을 구한다.
사용한 공식은 간단하게 (rgb*255)/SetValue(input 지정수)와 limitvar(제한값).
이 값을 평균 gray값으로 한다.
여기서 gray의 value값과 연계된 limitvar(제한값)값을 편접 가능한 input값으로 놓으면
실시간으로 적용가능하다.

 

즉, gray의 value값이 limitvar(제한값)값을 넘어서면 다시 gray 값을 255값으로.
반대로 넘어서지 못하면 0값으로 환원한다.


그리고 다시 그 gray값의 R, G, B값이 write한다. (어차피 RGB 모두 동일값이된다.)

결과적으로 SetValue(input 지정수)와 limitvar(제한값)값에 의해 밝은 부분과
어두운 부부만 남게 된다.

 

여기서 현재의 고정값을 저장해두어 비교 분석하게 되면 인식하는 환경변화(주변밝기)에
따라 조정할 수 있다.

 

동영상은 그 결과이다.
블럭단위로 조정한다. 처음은 8x6, 16x12, 32x24개의 순으로 생성되며 한번 생성되면
실행이 종료할때까지 그 값은 메모리에 저장되어 유지된다.
블럭은 gray의 평균값이 limitvar(제한값)값에 의해 활성, 비활성되며
실제작동에서는 안보인다. 영상중간에 작동도중 단축키에 의해 켜고 끄는 장면이 있다.

 

 

모션감지 테스트 동영상

 

반응형

댓글