我正在使用OpenCV将一堆视点匹配成全景图。结果是一堆黑色背景上的图片(类似于多边形形状)。我想做的是裁剪这个多边形,使得结果图像中没有黑色。有没有好的算法可以实现这个功能?
我想到的天真方法是从图像中间开始用一个小正方形向上扩展,直到遇到黑色,然后向左右扩展。
我想要的解决方案是最大化填充区域的总面积。
编辑:由于多边形是凹的,我们需要检查一下--我认为尝试每个顶点对的O(N^2)算法是可行的,因为N很小。但我们需要检查边界区域是否填充,我想可以通过检查每个顶点是否位于我们选择的顶点对定义的矩形边界内来以O(N)的时间完成。这给了我们一个O(N^3)的算法。
我想到的天真方法是从图像中间开始用一个小正方形向上扩展,直到遇到黑色,然后向左右扩展。
我想要的解决方案是最大化填充区域的总面积。
编辑:由于多边形是凹的,我们需要检查一下--我认为尝试每个顶点对的O(N^2)算法是可行的,因为N很小。但我们需要检查边界区域是否填充,我想可以通过检查每个顶点是否位于我们选择的顶点对定义的矩形边界内来以O(N)的时间完成。这给了我们一个O(N^3)的算法。