我有一组来自对象检测系统的边界框。它们的格式如下:
[[x,y], [x,y], [x,y], [x,y]]
Run Code Online (Sandbox Code Playgroud)
我想找到最大的边界框,该边界框既不与任何其他提供的框相交,也不位于排除的框内。
我正在使用 python,但欢迎使用任何编程语言进行回复:)
迭代每个点并找到 x 和 y 的最小值和最大值。
然后使用这些坐标裁剪为多边形。
问题是示例图像上的算法会删除图像的顶部部分,但没有必要这样做,因为我们“错过”了左上角和右上角的框。
尝试选择一次仅裁剪一侧,因为通常在我的数据集中要排除的内容都在一侧。例如删除顶部 100px
所以我像以前一样计算了 x 和 y 的最小值和最大值。然后计算每个可能切割的面积 - 左、右、上、下,并选择面积最小的一个。
当图片两侧(如左右两侧)都有方框时,这种方法很快就会失败
我正在尝试访问数组的元素。我确信我尝试使用的类型足以索引整个数组,而 64 位索引是多余的。
我在 C 和 C++ 方面的经验很少,我知道在那里是可能的。
我不确定几点,想问一下:
usize尝试访问数组元素时,C 和 C++ 是否将类型转换为?usizeu8fn main() {
let some_array = [10; 255];
let some_index: u8 = 255;
println!("{}", some_array[some_index])
}
Run Code Online (Sandbox Code Playgroud)
int main() {
char array[255] = {0};
char index = 12;
printf("Element: %d", array[index]);
}
Run Code Online (Sandbox Code Playgroud)