Pygameで画像処理
鮮鋭化です。
import pygame import math def saturate(param): if(param < 0): ret = 0 elif(param > 255): ret = 255 else: ret = param return ret # 鮮鋭化 # @param tBuf サーフェス # @return 変換後のサーフェス def transSharp(tBuf): retBuf = pygame.transform.scale(tBuf, tBuf.get_size()) for j in range(1, retBuf.get_height()-1): for i in range(1, retBuf.get_width()-1): color1 = tBuf.get_at((i, j)) color2 = tBuf.get_at((i-1, j)) color3 = tBuf.get_at((i+1, j)) color4 = tBuf.get_at((i, j-1)) color5 = tBuf.get_at((i, j+1)) color = ( saturate(color1[0]-((color2[0]+color3[0]+color4[0]+color5[0])-(color1[0]*4))), saturate(color1[1]-((color2[1]+color3[1]+color4[1]+color5[1])-(color1[1]*4))), saturate(color1[2]-((color2[2]+color3[2]+color4[2]+color5[2])-(color1[2]*4))), 255) retBuf.set_at((i, j), color) return retBuf # Main def main(): pygame.init() pygame.display.set_mode((250, 250), 0, 32) pygame.display.set_caption("鮮鋭化") _gScr = pygame.display.get_surface() tBuf = pygame.image.load("nyan.bmp").convert() tBuf = transSharp(tBuf) while True: _gScr.blit(tBuf, (0, 0), tBuf.get_rect()) pygame.display.update() for e in pygame.event.get(): if e.type == pygame.QUIT: return pygame.time.wait(10) if __name__ == '__main__': main()