python上的反别名图像

时间:2017-12-05 15:56:51

标签: python image image-processing antialiasing

我在python 3.X中有一个简单的代码来为.PNG图像添加反别名,我已成功通过将图像大小缩小4倍来尝试它,这里是代码:

def resize(surf, size):
"""
Anti-aliasing by average of color code in four pixels
with subsequent use of the average in a smaller surface
"""
new_surf = pygame.surface.Surface((768,480))
#take sample on the picture
for j in range(0, 480, 2):
    for i in range(0, 768, 2):
        r1, g1, b1, a1 = surf.get_at((i, j))
        r2, g2, b2, a2 = surf.get_at((i+1, j))
        r3, g3, b3, a3 = surf.get_at((i, j+1))
        r4, g4, b4, a4 = surf.get_at((i+1, j+1))

 #averaging the sample
        r1all = (r1 + r2 + r3 + r4) / 4
        g1all = (g1 + g2 + g3 + g4) / 4
        b1all = (b1 + b2 + b3 + b4) / 4
        a1all = (a1 + a2 + a3 + a4) / 4

 #put new value on the sample
        new_surf.set_at((i//2, j//2), (r1all, g1all, b1all, 255))

new_size = size
return new_surf, new_size

如果我不需要通过更改此代码来调整图像大小,我想尝试一下,我希望反锯齿效果仍然可以出现。

#put new value on the sample
        new_surf.set_at((i, j), (r1all, g1all, b1all, 255))

但是在尝试不调整图像大小之后,结果像这个图像一样奇怪和黑暗: failed result, left: failed result, right image: zoom from failed result

我的问题,你们能告诉我这是什么问题吗?怎么解决这个问题?我的目标:在不调整图片分辨率的情况下使图像保持清晰白色,但结果与图片成功相同,例如调整尺寸缩小4倍'

我听到一些使用超级采样AA的参考,但我不知道如何应用它。

原图: original image

AA缩小4x的示例: success AA example with resizing 4x smaller

0 个答案:

没有答案