무한루프내에서 웹캠을 통해 getsnapshot을 얻으면 엄청난 속도저하가 일어난다.
지난 몇달간 그냥 '아 매트랩은 원래 느리구나'하고있었는데 해결법을 발견하기위해 열심히 한땀 한땀 tic-toc을 찍어보며 어디가 문제인지 찾아보있다.
obj= videoinput(...) int a=... ... ... while(1) while_img=getsnapshot(obj); end |
라는 코드를 생성했다고 가정한다.
>> tic while_img=getsnapshot(obj); toc Elapsed time is 0.848691 seconds. |
tic-toc함수로 연산시간을 체크해보니 무려 0.8초 ㄷㄷ 심할때는 1초까지 걸린다.
빠릿빠릿한 연산은 도저히 불가능한 시간이다. pause를 0.0000000000001초로 줘도 자동으로 딜레이가 1초정도 걸린다.
먼저 속도 저하가 일어나는 원인은, 매 루프마다 새로 video object를 실행해서 캡쳐하고 루프가 끝날때 video object를 닫는것에 있었다.('닫는'다는 표현이 맞는지는 모르겠다) video object를 새로 실행시키고 getsnapshot을 하는데 무려 1초가까이가 걸리던 것이다!! 이 사실에 착안해서 무한루프 실행전에 preview를 통해 미리 video object를 활성화 시켜줬더니 무려 getsnapshot이 160배가량 빨라졌다.
obj= videoinput(...) preview(obj); int a=... ... ... while(1) while_img=getsnapshot(obj); end |
이런식으로 먼저 video object를 활성화 시켜주었다!
//////더 좋은방법이 없을까 하며 구글링하던중 나와 똑같은 생각을 한 사람을 발견하였다.
http://stackoverflow.com/questions/8901824/getsnapshot-speedup
그런데 이 글에 답글을 보면 vision.VideoPlayer를 생성해서 데이터를 읽어오는 방법이 나와있는데
어떻게 사용하는지를 모르겠다.. vision 이란건 어디서 긁어와야하는거지..?
혹시 아시는분 계신가요?
'소프트웨어 > MATLAB' 카테고리의 다른 글
Matlab의 M-file을 HTML로 Publish하기 (0) | 2013.06.16 |
---|---|
MATLAB] 웹캠 videoinput시 workspace를 이용한 흑백화 (2) | 2012.12.29 |
MATLAB] 웹캠(webcam) 연결시 wide(HD)모드 이용하는 방법 (0) | 2012.12.29 |
MATLAB] 함수 수행시간 측정 tic toc (0) | 2012.12.01 |
MATLAB] find함수로 0이 아닌 데이터들의 index 찾기 (0) | 2012.10.25 |
MATLAB] 행기준 정렬. sortrows함수 (0) | 2012.10.25 |
텀프로젝트] 몬테카를로 시뮬레이션_맥도날드 시뮬레이션.monte carlo simulation.MATLAB (3) | 2012.10.25 |