【发布时间】:2014-09-15 13:46:31
【问题描述】:
我有一个尺寸为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;
【问题讨论】:
-
不经实际尝试,乍一看似乎还可以。
-
你确定你应该做整数除法吗?在我看来,除非我完全误解了你的代码,否则你会遇到一些大错误。
-
@InBetween 你是对的。也许是因为整数我无法正确重新调整边界框。我现在就试试。我应该采用上限还是下限?对于部门
-
代码看起来像C#,为什么要加C++标签?
标签: c# rectangles bounding-box rescale