synchronised double webcam acquisition
이전 댓글 표시
I have to acquire image sequences from two webcams at the same time.
Synch is very important since I am dealing with stereo vision applied to a moving target.
By using preview I can see two synchronized video streaming. I have checked the synch by filming a chronometer.
When I use ‘start’ and ‘getdata’ to retrieve the two videos I experience about two seconds delay between the two sequences as if they have been acquired one after the other.
How can I manage to have two synchronized video?
Code attached.
Thank you in advance!
camera=setup_webcam
Rcam=camera(1);
Lcam=camera(2);
Rcam.FramesPerTrigger = 30;
Lcam.FramesPerTrigger = 30;
preview(camera)
start(camera)
stoppreview(camera);
diskLoggerR = VideoWriter('Rvvvvvv, 'Uncompressed AVI');
open(diskLoggerR);
dataR = getdata(camera(1), camera(1).FramesAvailable);
numFrames = size(dataR, 4);
for ii = 1:numFrames
writeVideo(diskLoggerR, dataR(:,:,:,ii));
end
close(diskLoggerR);
diskLoggerL = VideoWriter(‘Lvvvv’, 'Uncompressed AVI');
open(diskLoggerL);
dataL = getdata(camera(2), camera(2).FramesAvailable);
numFrames = size(dataL, 4);
for ii = 1:numFrames
writeVideo(diskLoggerL, dataL(:,:,:,ii));
end
close(diskLoggerL);
채택된 답변
추가 답변 (1개)
Florian Enner
2016년 5월 14일
편집: Florian Enner
2016년 5월 14일
I've uploaded a submission that supports streaming from webcams and ip cameras with very low overhead. We've used it for stereo vision before on relatively slow targets. You should be able to synchronize to within 1 frame, but depending on the speed of your target that may not be enough. It's probably worth a try.
% Connect to cameras
cam1 = HebiCam('<address1>');
cam2 = HebiCam('<address2>');
% Main Loop
while true
img1 = getsnapshot(cam1);
img2 = getsnapshot(cam2);
% ... do vision stuff ...
end
Let me know if that works for you.
카테고리
도움말 센터 및 File Exchange에서 Image Data Acquisition에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!