python - 调整图像大小后寻找新位置 (x,y)

标签 python matlab opencv image-processing transform

我有一组边界框形式的对象注释。我有这些边界框的 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/

相关文章:

python - 将 lambda 函数绑定(bind)到使用 For 循环创建的多个 Tkinter Entry 小部件

python - 创建包含多个 HTTP 请求的 mime/multipart 请求

python - 使用pattern.en 格式化整个文本?

linux - 显着性模型 - BMS(设置错误)

python - Python中的openCV光流

python - 无法将CSV文件数据导入mysql表

matlab - 在 Matlab 中使用 interp2 并输入 NaN

matlab,很好地格式化表格,没有单元格数组

CvLoadImage 函数和列表

Python + OpenCV : OCR Image Segmentation