我有一组边界框形式的对象注释。我有这些边界框的x、y和x2y2坐标。我希望使用Matlab的imresize或opencv/python INTER_AREA对图像进行预处理并调整它们的大小。没有问题,但我希望找到边界框坐标的新位置。
理想情况下,我应该能够从INTER_AREA获得变换矩阵,并将其应用于坐标,但我看不到这样做的方法,尽管我已经浏览了很多。
谢谢。
您可以将框表示为原始图像的百分比,然后调整图像大小并将框转换回图像坐标。
例如:
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;
一旦你有了这些百分比,调整你的图像大小,然后将框百分比转换回调整大小的图像的坐标。
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;