我有一组边界框形式的对象注释。我有这些边界框的 x、y 和 x2y2 坐标。我希望预处理图像并使用 Matlab 的 imresize 或 opencv/python INTER_AREA 调整它们的大小。没问题,但我希望找到边界框坐标的新位置。
理想情况下,我应该能够从 INTER_AREA 获取变换矩阵并将其应用于坐标,但尽管我浏览了大量内容,但我没有找到执行此操作的方法。
谢谢。
最佳答案
您可以将 bboxes 表示为原始图像的百分比,然后调整图像大小并将 bboxes 转换回图像坐标。
例如:
function x1p,y1p,x2p,y2p = toPercentage(img_orig, x1,y1,x2,y2)
h,w,c = size(img_orig);
x1p = x1 / w;
x2p = x2 / w;
y1p = y1 / h;
y2p = y2 / h;
获得这些百分比后,调整图像大小,然后将 bbox 百分比转换回调整后图像的坐标。
function x1,y1,x2,y2 = toImCoord(img_resized, x1p,y1p,x2p,y2p)
h,w,c = size(img_resized);
x1 = x1p * w;
x2 = x2p * w;
y1 = y1p * h;
y2 = y2p * h;
关于python - 调整图像大小后寻找新位置 (x,y),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38601285/