重新缩放矩形(顶部、左侧、底部、右侧)

本文关键字:左侧 底部 右侧 顶部 新缩放 缩放 | 更新日期: 2023-09-27 18:21:52

原始问题:原始问题

我有一个大小为height x width = (1500,500)的图像I1,其大小调整为(500,300)

I1包含以其坐标(Top, Left, Bottom, Right)为特征的边界框。


I1的大小更改时,如何重新缩放边界框的坐标?这些公式正确吗?

   double newTop = Math.Ceiling((top) * (double)pictureBox1.Height / (double)image1.Height);
   double newLeft = Math.Ceiling((left) * (double)pictureBox1.Width / (double)image1.Width);
   double newBottom = Math.Ceiling((bottom + 1) * (double)pictureBox1.Height / (double)image1.Height) - 1;
   double newRight = Math.Ceiling((right + 1) * (double)pictureBox1.Width / (double)image1.Width) - 1;

重新缩放矩形(顶部、左侧、底部、右侧)

一般情况下:

尺寸按系数(新尺寸)/(旧尺寸)缩放。

坐标有点复杂:

x2 = left2 + (x1 - left1) * width2 / width1
y2 = top2 + (y1 - top1) * height2 / height1

其中leftwidth等描述整个图像的位置。CCD_ 6和CCD_。在您的情况下,边界框的角是特征。

如果left1left2top1top2都为零,则会得到与您的表达式类似的表达式。