调整图像大小

时间:2016-07-26 23:08:53

标签: python matlab opencv image-processing transform

我在边界框形式中有一组对象注释。我有这些边界框的x,y和x2y2协调。我希望预处理图像并使用Matlab的imresize或opencv / python INTER_AREA调整它们的大小。没有问题,但我希望找到边界框坐标的新位置。

理想情况下,我应该能够从INTER_AREA获取变换矩阵并将其应用于坐标,但我没有看到这样做的方法,尽管我一直在浏览它。

感谢。

1 个答案:

答案 0 :(得分:2)

您可以将bbox表示为原始图像的百分比,然后调整图像大小并将bbox转换回图像坐标。

例如:

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;