我在黑色背景上有一些图像,其中图像没有方形边缘(见下图右下方).我想把它们裁剪成最大的矩形图像(红色边框).我知道我可能会失去原始图像.是否可以在OpenCV中使用Python执行此操作.我知道有一些功能可以裁剪到轮廓的边界框,但这仍然会让我在地方留下黑色背景.

考虑这样的图像:

通过按颜色将像素分组到不同的矩形中,可以实现不同的配置,例如:

目标是找到最佳配置之一,即具有尽可能少的矩形的配置(矩形大小并不重要)。
关于如何设计能够解决这个问题的有效算法有什么想法吗?
编辑:我认为最好的答案是@dshin 的答案,因为他们证明这个问题是一个 NP-HARD 问题,所以可能没有任何有效的解决方案能够保证最佳结果。其他答案提供了合理的妥协以获得可接受的解决方案,但这并不总是最佳的。