このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
ステレオ カメラから顔までの距離の測定
ステレオ パラメーターを読み込みます。
load('webcamsSceneReconstruction.mat');
イメージのステレオ ペアを読み取ります。
I1 = imread('sceneReconstructionLeft.jpg'); I2 = imread('sceneReconstructionRight.jpg');
イメージの歪みを補正します。
I1 = undistortImage(I1,stereoParams.CameraParameters1); I2 = undistortImage(I2,stereoParams.CameraParameters2);
両方のイメージ内で顔を検出します。
faceDetector = vision.CascadeObjectDetector; face1 = faceDetector(I1); face2 = faceDetector(I2);
顔の中心を求めます。
center1 = face1(1:2) + face1(3:4)/2; center2 = face2(1:2) + face2(3:4)/2;
カメラ 1 から顔までの距離を計算します。
point3d = triangulate(center1, center2, stereoParams); distanceInMeters = norm(point3d)/1000;
検出した顔と距離を表示します。
distanceAsString = sprintf('%0.2f meters', distanceInMeters); I1 = insertObjectAnnotation(I1,'rectangle',face1,distanceAsString,'FontSize',18); I2 = insertObjectAnnotation(I2,'rectangle',face2, distanceAsString,'FontSize',18); I1 = insertShape(I1,'filled-rectangle',face1); I2 = insertShape(I2,'filled-rectangle',face2); imshowpair(I1, I2, 'montage');