import cv2 import numpy as np import math def EDF(img): P=[[0 for i in range(1500)] for j in range(1500) ] for h in range(0,height): for w in range(0,width): p0=img.item(h,w) P[w][h]=p0 for h in range(0,height): for w in range(0,width): temp=P[w][h] if P[w][h]>127: P[w][h]=255 else: P[w][h]=0 e=temp-P[w][h] if (w+1)=0 and (h-1)>=0: P[w+1][h]=P[w+1][h]+float(0.3125*e) P[w-1][h+1]=P[w-1][h+1]+float(0.1875*e) P[w][h+1]=P[w][h+1]+float(0.3125*e) P[w+1][h+1]=P[w+1][h+1]+float(0.1875*e) for h in range(0,height): for w in range(0,width): img.itemset((h,w),P[w][h]) if __name__=="__main__": #画像入力 img=cv2.imread('image/input.bmp',cv2.IMREAD_GRAYSCALE) #画像の幅と高さ取得 height=img.shape[0] width =img.shape[1] #鮮鋭化 EDF(img) #画像出力 cv2.imwrite('image/output.bmp',img)