在Matlab中获取内点的坐标

Get coordinates of inlier points in Matlab

我需要找到使用 impixel() 在对象检测中获得的内点的像素值。我使用的代码与 link

示例中提供的代码相同

如何获得相对于图像尺寸的内点的 x,y 坐标。(图像的左上角被视为 0 行,0 列)以便我可以使用坐标找到各自的像素值。我在 Matlab 中找不到任何与 C++ 中的 KeyPoint 对象相同的解决方案,可以轻松给出坐标值。

这里不需要impixelimpixel 允许您从图中显示的图像中获取像素值,这不是您想要做的。

在您使用的示例中,inlierBoxPointsinlierScenePoints 是 SURFPoints 对象。您可以获得点的 (x,y) 位置 inlierBoxPoints.Location。然后可以得到第i个点的像素值如下:

loc = round(inlierBoxPoints.Location(i, :));
pixVal = boxImage(loc(2), loc(1), :);

请记住,在 MATLAB 中,图像被索引为 (row, col),并且左上角像素是 (1,1),而不是 (0,0)。您必须对坐标进行四舍五入,因为这些点是以亚像素精度检测到的。