在Matlab中获取内点的坐标
Get coordinates of inlier points in Matlab
我需要找到使用 impixel()
在对象检测中获得的内点的像素值。我使用的代码与 link
示例中提供的代码相同
如何获得相对于图像尺寸的内点的 x,y 坐标。(图像的左上角被视为 0
行,0
列)以便我可以使用坐标找到各自的像素值。我在 Matlab 中找不到任何与 C++
中的 KeyPoint 对象相同的解决方案,可以轻松给出坐标值。
这里不需要impixel
。 impixel
允许您从图中显示的图像中获取像素值,这不是您想要做的。
在您使用的示例中,inlierBoxPoints
和 inlierScenePoints
是 SURFPoints 对象。您可以获得点的 (x,y) 位置 inlierBoxPoints.Location
。然后可以得到第i个点的像素值如下:
loc = round(inlierBoxPoints.Location(i, :));
pixVal = boxImage(loc(2), loc(1), :);
请记住,在 MATLAB 中,图像被索引为 (row, col),并且左上角像素是 (1,1),而不是 (0,0)。您必须对坐标进行四舍五入,因为这些点是以亚像素精度检测到的。
我需要找到使用 impixel()
在对象检测中获得的内点的像素值。我使用的代码与 link
如何获得相对于图像尺寸的内点的 x,y 坐标。(图像的左上角被视为 0
行,0
列)以便我可以使用坐标找到各自的像素值。我在 Matlab 中找不到任何与 C++
中的 KeyPoint 对象相同的解决方案,可以轻松给出坐标值。
这里不需要impixel
。 impixel
允许您从图中显示的图像中获取像素值,这不是您想要做的。
在您使用的示例中,inlierBoxPoints
和 inlierScenePoints
是 SURFPoints 对象。您可以获得点的 (x,y) 位置 inlierBoxPoints.Location
。然后可以得到第i个点的像素值如下:
loc = round(inlierBoxPoints.Location(i, :));
pixVal = boxImage(loc(2), loc(1), :);
请记住,在 MATLAB 中,图像被索引为 (row, col),并且左上角像素是 (1,1),而不是 (0,0)。您必须对坐标进行四舍五入,因为这些点是以亚像素精度检测到的。