我有一个用于关键点检测的图像数据集。每个图像都标有一个关键点(x | y)。
我使用numpy翻转图像以进行数据增强。
我用以下代码水平翻转图像:
RecyclerView
垂直使用此代码
img = img[:, ::-1]
到目前为止,一切都很好。但我还必须重新计算关键点(标签)( img = img[::-1]
我知道它的基本数学原理,但是我还没有提出解决方案。
谢谢。
答案 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