重新缩放矩形(顶部、左侧、底部、右侧)
本文关键字:左侧 底部 右侧 顶部 新缩放 缩放 | 更新日期: 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
其中left
和width
等描述整个图像的位置。CCD_ 6和CCD_。在您的情况下,边界框的角是特征。
如果left1
、left2
、top1
、top2
都为零,则会得到与您的表达式类似的表达式。