Pixiv - KiraraShss
技术学习笔记之 PIL 模块
416 字
2 分钟
技术学习笔记之 PIL 模块
1. 导入模块
from PIL import Image2. 打开图片
fn = Image.open("tiger.jpg")3. 获取图像属性
a = fn.size # (width, height) 元组a = fn.width # 宽度a = fn.height # 高度a = fn.mode # 模式:RGB 彩色、L 灰度、P 256色、1 黑白色a = fn.format # 图片格式:jpg, png, bmp ……4. 对图像进行处理
fn = fn.rotate(-90) # 角度制;逆时针旋转fn = fn.resize((fn.width//2, fn.height//2)) #fn = fn.show() # 显示图像fn = fn.convert("L") # 转换模式fn.save("test.bmp") # 保存图像,自动匹配格式fn.close() # 关闭图像5. 像素操作
pix = fn.load() # 获取全部像素tpix = pix[i, j] # 获取像素点,其类型取决于图片模式R, G, B = fn.getpixel((i, j)) # 直接获取像素new_img.putpixel((i, j), new_pixel) # 写入像素new_pixel = int(0.299*R + 0.857*G + 0.144*B) # RGB转灰度6. 示例代码
from PIL import Imageimg = Image.open("tiger.jpg")pix = img.load()
THERESHOLD = 132
new_img = Image.new("L", img.size) # create a blank image in gray modenew_img2 = Image.new("1", img.size) # create a blank image in 0/1 mode
x, y = img.size
for i in range(x): for j in range(y): R, G, B = img.getpixel((i, j)) new_pixel = int(0.299*R + 0.857*G + 0.144*B) # convert to gray mode new_img.putpixel((i, j), new_pixel) # put a pixel in gray mode new_img2.putpixel((i, j), (0 if new_pixel < THERESHOLD else 1))
new_img.save("tiger_L.jpg")new_img2.save("tiger_1.jpg")new_img.close()new_img2.close()img.close()原图:

灰度:

单色:

from PIL import Imagefor THERESHOLD in range(0, 256): img = Image.open("tiger.jpg") pix = img.load() new_img2 = Image.new("1", img.size) # create a blank image in 0/1 mode x, y = img.size for i in range(x): for j in range(y): R, G, B = img.getpixel((i, j)) new_pixel = int(0.299*R + 0.857*G + 0.144*B) # convert to gray mode new_img2.putpixel((i, j), (0 if new_pixel < THERESHOLD else 1)) new_img2.save("./output/{}.jpg".format(THERESHOLD)) new_img2.close() img.close()from PIL import Imageimg = Image.open("one-bw.png")width, height = img.sizeRATE = 0.64cnt = 0for i in range(width): for j in range(height): # print(img.getpixel((i, j))) if(img.getpixel((i, j)) != 255): cnt += 1print(cnt, width*height*RATE)if(cnt > width*height*RATE): print("FILLED.")else: print("UNFILLED.")支持与分享
如果这篇文章对你有帮助,欢迎分享给更多人或赞助支持!
相关文章 智能推荐
1
技术学习笔记之 Python 语言基础
笔记本 2023-12-07
2
Pandas 学习笔记
笔记本 2024-04-14
3
信息技术之链表
笔记本 2024-07-07
4
高中信息技术之递归题解(一)
笔记本 2024-10-06
5
Python学习笔记之类
笔记本 2024-08-28
随机文章 随机推荐
无穷大?