用numpy计算坐标的新位置

时间:2018-09-03 08:18:11

标签: python numpy data-augmentation

我有一个用于关键点检测的图像数据集。每个图像都标有一个关键点(x | y)。

我使用numpy翻转图像以进行数据增强。

我用以下代码水平翻转图像:

RecyclerView

垂直使用此代码

img = img[:, ::-1]

到目前为止,一切都很好。但我还必须重新计算关键点(标签)( img = img[::-1] 我知道它的基本数学原理,但是我还没有提出解决方案。

谢谢。

3 个答案:

答案 0 :(得分:0)

使用旋转矩阵:

x_new = x_old * np.cos(alpha) - y_old * np.sin(alpha)
y_new = x_old * np.sin(alpha) + y_old * np.cos(alpha)

Alpha是弧度的旋转角,但我不知道是什么img = img[:, ::-1])))

答案 1 :(得分:0)

如果水平翻转图像,则从左侧起85个像素的像素将从右侧起85个像素。垂直翻转的方法也一样,从顶部开始的35个单位将从底部开始的35个单位。

因此,现在您可以借助图像大小img.shape来计算位置,或者使用可以使用负索引访问图像这一事实。因此,点[85 35]将是点[-85 35][width_of_image-85 35]

答案 2 :(得分:0)

如果要翻转180°(垂直或水平水平),则不需要旋转矩阵。只需获得图像的形状即可。

X = img.shape[1]
y = img.shape[0]

水平翻转时重新计算X位置。

X_Position_New = X - X_Position_Old

垂直翻转时重新计算Y位置。

Y_Position_New = Y - Y_Position_Old