【发布时间】:2018-01-28 16:42:41
【问题描述】:
我使用 MATLAB 的 Camera Calibrator App 使用棋盘格校准了单声道相机。
从这里我得到了保存在calibrationSession中的所有相机参数。
我用同一台相机拍摄了一个物体 (sceneImage)。
我还有一张简单的图片,只显示了没有任何旋转的对象(objImage)。
而且我知道物体的真实宽度和高度。
使用 SURF 特征检测器,我提取了其中的特征并与之匹配。
现在我想猜测/计算物体的 6-D 位置,我知道它的特征,在我用校准的相机拍摄的照片中。
目前有我的 MATLAB 代码:
% IMPORTS
model = imread('model.png');
scene = imread('scene.png');
load('calibrationSession');
% IMG PREP
cameraParams = calibrationSession.CameraParameters;
objImage = rgb2gray(model);
[sceneImage, newOrigin] = undistortImage(rgb2gray(scene),cameraParams);
I1 = sceneImage;
I2 = objImage;
% DETECTION
points1 = detectSURFFeatures(I1);
[features1, valid_points1] = extractFeatures(I1, points1);
points2 = detectSURFFeatures(I2);
[features2, valid_points2] = extractFeatures(I2, points2);
[indexPairs,matchmetric] = matchFeatures(features1,features2);
matchedPoints1 = valid_points1(indexPairs(:,1),:);
matchedPoints2 = valid_points2(indexPairs(:,2),:);
% LOCATION
objwidth = 126;
objheight = size(I2,2)*objwidth/size(I2,1);
【问题讨论】:
-
嘿!只是想知道你最终对这个问题做了什么?此外,在查看您的历史后,友好的抱怨:我认为如果您可以与回答您的人进行一些互动会很酷。否则……有什么意义?
-
您好,谢谢,抱歉没有回复。但是我仍然对stackoverflow如何不允许初学者正确交互感到有些困惑,就像我不允许编写cmets,除非它们低于我自己的答案和类似的东西。我也经常得到一个像这里一样的-1来问一个问题,我想为什么?长话短说,我在 matlab 中退出了这项任务,因为问题是我无法让 SURF 检测场景中对象的 4 个边缘,此外,因为它是我研究的一部分,结果证明可以编译解决方案不是绝对必要的。
-
编辑:我仔细检查了我所有的问题,并且几乎在所有情况下我都与给出答案的人进行了互动。这个话题我忘记了,因为我在 2 月份完成学业后就失去了意义,抱歉。
标签: matlab computer-vision location camera-calibration