我正在寻找一种算法,用于将非矩形图像(即透明图像)分块为16x16像素大小的块。这些块可以重叠,但目标是获得最少的块数。
示例:
原始图像: 目标图像: 摘要:
示例:
原始图像: 目标图像: 摘要:
- 块必须具有相同的尺寸
- 块可以重叠
- 最小化矩形的数量是目标
这是集合覆盖问题的一个特殊情况。你可以尝试使用整数规划求解器,但可能存在太多可能的块。整数规划适用于列生成/分支定价,但这是一种高级技术,需要一些实验才能正确使用。
我认为你可以使用贪心算法,重复选择覆盖尽可能多像素的块,包括一个边界像素。