本文的方法适合刚接触图像标定而且手头的双目摄像头是单幅图片输出的菜鸟,当然你还要用MATLAB标定工具箱,因为这个小程序是用MATLAB写的。
clc; clear all; close all; m = 1280; %视频尺寸总宽度大小 n = 480;%视频尺寸总高度大小 vid_format = (strcat('YUY2_',num2str(m),'x',num2str(n)));%视频格式 vid = videoinput('winvideo', 1, vid_format); set(vid,'ReturnedColorSpace','rgb');%设置视频颜色空间为RGB vidRes=get(vid,'VideoResolution');%取得视频分辨率大小 nBands=get(vid,'NumberOfBands');%取得视频波段 h1 = figure('Name', 'Matlab调用摄像头', 'NumberTitle', 'Off', 'ToolBar', 'None', 'MenuBar', 'None');%获得窗口1 的句柄 set(h1,'Position',[0,n,m,n]) %设置窗口1位置 hImage=image(zeros(vidRes(2),vidRes(1),nBands)); preview(vid,hImage);%在窗口1输出视频 for k = 1 : 12 %拍摄图片的数量 w = waitforbuttonpress;%监控键盘输入 if w while(~strcmpi(get(gcf, 'CurrentCharacter'),13)) frame = getsnapshot(vid);%获取视频快照 [m,n,l] = size(frame); l_frame = frame(:,1:n/2,:);%分割左视频 r_frame = frame(:,n/2+1:end,:);%分割右视频 h2 = figure('Position',[0, 0, 100, 100]);%获得窗口2句柄 imshow(l_frame);%窗口2显示左视频 h3 = figure('Position',[0, 0, 100, 100]);%获得窗口3句柄 imshow(r_frame);%窗口3显示右视频 name1 = strcat('left0',num2str(k),'.jpg');%设置左图像名字 name2 = strcat('right0',num2str(k),'.jpg');%设置右图像名字 saveas(h2,['D:\path\dunc\son\',name1]);%图像储存路径可以自己改 saveas(h3,['D:\path\dunc\son\',name2]); break; end end end 请在程序中自行改变分辨率大小即 m , n 这两个参数,打开摄像头后只要按回车键就能自动保存图像到指定文件夹下,程序里有大量注释,请自己琢磨拓展功能。
后续标定工作请参考以下博客:
http://blog.csdn.net/hyacinthkiss/article/details/41317087