我有一个用于关键点检测的图像数据集。每个图像都标有一个关键点 (x|y)。我使用 numpy 来翻转图像以进行数据增强。我使用以下代码水平翻转图像:img = img[:, ::-1]与此代码垂直 img = img[::-1]到现在为止还挺好。但我还必须重新计算关键点(标签)([85 35])我知道它的基本数学,但我还没有找到解决方案。
3 回答

子衿沉夜
TA贡献1828条经验 获得超3个赞
使用旋转矩阵:
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]
)))

浮云间
TA贡献1829条经验 获得超4个赞
如果您要翻转 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

慕娘9325324
TA贡献1783条经验 获得超4个赞
如果水平翻转图像,那么距左侧 85 个单位的像素将距右侧 85 个单位。垂直翻转也是如此,距离顶部 35 个单位将是距离底部 35 个单位。
因此,现在您可以借助img.shape
图像的大小来计算位置,也可以使用可以使用负索引访问图像的事实。所以点将[85 35]
是点[-85 35]
或[width_of_image-85 35]
添加回答
举报
0/150
提交
取消