本文的方法適合剛接觸圖像標定而且手頭的雙目攝像頭是單幅圖片輸出的菜鳥,當然你還要用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