在图像中找到参考点的最快方法
Fastest way to find reference point in image
我正在寻找找到一个或多个参考点的最快方法(可以是 + 或矩形)。
我的第一个想法是,从图像的中点开始,在所有 4 个方向上迭代查看彩色像素。但是在这种情况下,我不清楚如何处理 + .
这样的符号
希望我的描述是清楚的。
问候
更新
就像这张图片一样,矩形通常应该在中间。对于检测来说,如果最初找到位置需要更长的时间并且 "check" 必须非常快的话,那就没问题了。:
我不知道 OpenCV 代码所有方面的相对性能,但我认为它非常擅长跨图像整行的矢量类型操作,而不是你建议时建议的标量操作不断增加从中心辐射的圆圈以找到十字架。这是一种可能有效的方法。
首先,squidge (TM) 将所有像素组合在一起形成一个与原始图像一样高但只有一个像素宽的列。我在图中将其涂成红色。此列中最暗的像素为您提供参考点的 y 坐标。
然后,squidge (TM) 将所有像素放在一起,形成与原始图像一样宽但只有一个像素高的行。我在图中将其涂成蓝色。然后中间黑色条中最暗的部分为您提供中心参考点的 x 坐标。
这还将处理较小的旋转和平移 - 如果旋转较大,您将在右侧看到 3 个黑条。
你也可以决定,一般来说,为了节省时间,你只需要处理垂直方向1/3到2/3点和1/4到3/4点的图像水平方向的点,因为这最有可能包括参考点。
我正在寻找找到一个或多个参考点的最快方法(可以是 + 或矩形)。
我的第一个想法是,从图像的中点开始,在所有 4 个方向上迭代查看彩色像素。但是在这种情况下,我不清楚如何处理 + .
这样的符号希望我的描述是清楚的。 问候
更新
就像这张图片一样,矩形通常应该在中间。对于检测来说,如果最初找到位置需要更长的时间并且 "check" 必须非常快的话,那就没问题了。:
我不知道 OpenCV 代码所有方面的相对性能,但我认为它非常擅长跨图像整行的矢量类型操作,而不是你建议时建议的标量操作不断增加从中心辐射的圆圈以找到十字架。这是一种可能有效的方法。
首先,squidge (TM) 将所有像素组合在一起形成一个与原始图像一样高但只有一个像素宽的列。我在图中将其涂成红色。此列中最暗的像素为您提供参考点的 y 坐标。
然后,squidge (TM) 将所有像素放在一起,形成与原始图像一样宽但只有一个像素高的行。我在图中将其涂成蓝色。然后中间黑色条中最暗的部分为您提供中心参考点的 x 坐标。
这还将处理较小的旋转和平移 - 如果旋转较大,您将在右侧看到 3 个黑条。
你也可以决定,一般来说,为了节省时间,你只需要处理垂直方向1/3到2/3点和1/4到3/4点的图像水平方向的点,因为这最有可能包括参考点。