是否有一种已知的位图缩放算法可以产生与该算法相同的结果?
Is there a known bitmap scaling algorithm that produces the same result as this algorithm?
我将大小为 w1 × h1 的位图 b 缩放为位图的算法大小 w2 × h2:
- 缩放 b 到位图 b1 大小 lcm(w1, w2) × lcm(h1, h2) 使用最近邻缩放算法;
- 分区 b1 到具有 w2 列和 h2 行的网格,其中所有列宽度相同,所有行的高度相同;
- 将b1中每个像素的颜色设置为该像素所属网格单元的平均颜色;
- 将修改后的 b1 缩放为大小为 w2 × [=14 的位图 b2 =]h2使用最近邻缩放算法;
- 位图b2就是这个算法的结果。
上述算法并不是获得结果的最有效算法。我只是用它来描述缩放算法的效果(而且我可以在 Photoshop 中完成,而不用写程序)。是否有已知算法产生与我相同的结果?
你的算法的问题是它会占用大量内存。例如,如果您将尺寸从 11x11 缩放到 13x13,则 11 和 13 的最小公倍数 (lcm) 为 143。因此您将创建一个 143x143 的图像,然后将其缩小到 13x13。
作为替代方案,请查看 "bilinear interpolation":https://en.wikipedia.org/wiki/Bilinear_interpolation(本文还在 "See also" 部分提供了其他方法)。
我在这里找到了详细的描述:http://entropymine.com/imageworsener/pixelmixing/。
It’s sometimes called pixel mixing, pixel averaging, or area map, among other things.
我将大小为 w1 × h1 的位图 b 缩放为位图的算法大小 w2 × h2:
- 缩放 b 到位图 b1 大小 lcm(w1, w2) × lcm(h1, h2) 使用最近邻缩放算法;
- 分区 b1 到具有 w2 列和 h2 行的网格,其中所有列宽度相同,所有行的高度相同;
- 将b1中每个像素的颜色设置为该像素所属网格单元的平均颜色;
- 将修改后的 b1 缩放为大小为 w2 × [=14 的位图 b2 =]h2使用最近邻缩放算法;
- 位图b2就是这个算法的结果。
上述算法并不是获得结果的最有效算法。我只是用它来描述缩放算法的效果(而且我可以在 Photoshop 中完成,而不用写程序)。是否有已知算法产生与我相同的结果?
你的算法的问题是它会占用大量内存。例如,如果您将尺寸从 11x11 缩放到 13x13,则 11 和 13 的最小公倍数 (lcm) 为 143。因此您将创建一个 143x143 的图像,然后将其缩小到 13x13。
作为替代方案,请查看 "bilinear interpolation":https://en.wikipedia.org/wiki/Bilinear_interpolation(本文还在 "See also" 部分提供了其他方法)。
我在这里找到了详细的描述:http://entropymine.com/imageworsener/pixelmixing/。
It’s sometimes called pixel mixing, pixel averaging, or area map, among other things.