Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 将非矩形图像分割为大小相同的块_Algorithm_Image Processing_Sprite - Fatal编程技术网

Algorithm 将非矩形图像分割为大小相同的块

Algorithm 将非矩形图像分割为大小相同的块,algorithm,image-processing,sprite,Algorithm,Image Processing,Sprite,我正在寻找一种算法,将非矩形图像(即透明图像)分块成(例如)16x16像素大小的块。块可能重叠,但目标是获得最小数量的块 例子 总结 块的大小必须相等 块可能重叠 目标是最小数量的矩形 提前谢谢这是套装封面的特例。您可以尝试整数程序解算器,但可能有太多可能的块。integer程序将适用于列生成/分支和价格,但这是一种先进的技术,需要一些实验才能正确使用 我认为贪婪算法可以很好地重复选择包含尽可能多像素(包括一个边界像素)的块。这看起来像是装箱问题,通过你得到的,它将你的问题识别为直线p-

我正在寻找一种算法,将非矩形图像(即透明图像)分块成(例如)16x16像素大小的块。块可能重叠,但目标是获得最小数量的块

例子

总结
  • 块的大小必须相等
  • 块可能重叠
  • 目标是最小数量的矩形

提前谢谢

这是套装封面的特例。您可以尝试整数程序解算器,但可能有太多可能的块。integer程序将适用于列生成/分支和价格,但这是一种先进的技术,需要一些实验才能正确使用


我认为贪婪算法可以很好地重复选择包含尽可能多像素(包括一个边界像素)的块。

这看起来像是
装箱问题,通过你得到的,它将你的问题识别为直线p-中心问题。(学术界似乎对其进行了全面的讨论,但要找到一个现成的算法并不容易。)@MOehm:这些链接可能有用,但这似乎不是直线p-中心问题(根据那篇论文)包括确定最小可能的d,以便使用给定数量的p个d*d正方形覆盖给定的点集。这里,d是固定的,p是未知的。看起来我可能遗漏了一些东西,但是否还有另一个约束需要最小化/最大化?从列出的条件来看,答案似乎是1;覆盖所有像素的最小块。我猜还有第二个限制,那就是块中透明像素的总数应该最小化,或者什么的。这是对的吗?@j_random_hacker:是的,你是对的。当我在帖子中看到这张图片时,我立刻想到了地图是如何在地图册中分解成几页的,所以意大利的形象对我来说是恰到好处的。一旦建立了连接就很难断开。