1.图片【请保存到桌面(C:\Users\......Desktop)】
2.代码:(桌面在别的文件夹请修改)
from PIL import Image,ImageOps,ImageFilter
import matplotlib.pyplot as plt
img = Image.open(r'C:\Users\18181\desktop\bcm.jpg')
w,h=img.size
_,axes=plt.subplots(1,5,figsize=(30,30))
axes[0].imshow(img)
axes[0].set_title('original')
img_gray=img.convert('L')
plt.rcParams['image.cmap']='gray'
axes[1].imshow(img_gray)
axes[1].set_title('gray')
img_invert = ImageOps.invert(img_gray)
axes[2].imshow(img_invert)
axes[2].set_title('inverse')
img_gaussian = img_invert.filter(ImageFilter.GaussianBlur)
axes[3].imshow(img_gaussian)
axes[3].set_title('gaussian')
for x in range(w):
for y in range(h):
pos=(x,y)
A=img_gray.getpixel(pos)
B=img_gaussian.getpixel(pos)
img_gray.putpixel(pos,min(int(A+A*B/(255-B)) ,255))
axes[4].imshow(img_gray)
axes[4].set_title('sketch')
img_gray.save('bcm_sketch.png')
plt.show()
3.运行结果