以下代码均在jupyter-lab中完成 python3.8
例如:如下的图片
1、灰度化
## 自动补齐代码
%config IPComplter.greedy=True
## 获取图片&显示图片
from PIL import Image
import matplotlib.pyplot as plt
import numpy as np
#获取图片
def getimg():
return Image.open("pictures/学习资料.jpg")
#显示图片
def showimg(img, isgray=False):
## 加上
plt.axis("off")
plt.imshow(img)
plt.show()
## plt.imshow()负责对图片进行处理、plt.show()负责对图片进行显示
im = getimg()
im_gray = im.convert('1')
## PIL的九种不同模式:1,L,P,RGB,RGBA,CMYK,YCbCr,I,F
## 其中L表示的是灰度的图像
showimg(im_gray)
# ## 但是7.2.0之后 不能直接点出来了
# Image.Image.save(im_gray,'pictures/1学习资料.jpg')
2、二值化
# 图片二值化
from PIL import Image
img = Image.open('pictures/学习资料.jpg')
# 模式L”为灰色图像,它的每个像素用8个bit表示,0表示黑,255表示白,其他数字表示不同的灰度。
Img = img.convert('L')
Img.save("pictures/学习资料11.jpg")
# 自定义灰度界限,大于这个值为黑色,小于这个值为白色
threshold = 200
table = []
for i in range(256):
if i < threshold:
table.append(0)
else:
table.append(1)
# 图片二值化 使用table来设置二值化的规则
photo = Img.point(table, '1')
photo.save("pictures/学习资料22.jpg")