import cv2 import numpy as np from PIL import Image def convert(filepath, savepath): gray= cv2.imread(filepath, cv2.IMREAD_GRAYSCALE) h, w = gray.shape[:2] out = np.zeros(gray.shape, np.uint8) for i in range(h): for j in range(w): pix = gray[i][j] if pix < 50: out[i][j] = 0 elif pix < 200: out[i][j] = 0.25 * pix else: out[i][j] = 255 out = np.around(out) out = out.astype(np.uint8) cv2.imwrite(savepath, out) if __name__ == '__main__': filepath = 'pic/image1.jpg' savepath = 'pic/convert.jpg' convert(filepath, savepath)