Python编程:pillow对图像的简单处理

简介: Python编程:pillow对图像的简单处理

图片属性

from PIL import Image
def show_info():
    im = Image.open("image.jpg")
    print(im.mode)  # RGB
    print(im.format)  # JPEG
    print(im.size)  # (1200, 800)
    print(im.filename)  # image.jpg
    print(im.width)  # 1200
    print(im.height)  # 800

image.jpg

a33.1.1.png

转换图片格式

jpg -> png

def convert_format():
    Image.open("image.jpg").save("image.png")
    im = Image.open("image.png")
    print(im.mode)  # RGB
    print(im.format)  # PNG

创建缩略图

def create_thumbnail():
    im = Image.open("image.jpg")
    im.thumbnail((120, 80))
    im.save("image_thumbnail.jpg", "PNG")

a33.1.2.png


裁剪图片

def crop_iamge():
    im = Image.open("image.jpg")
    box = (206, 180, 994, 648)   # 左上角和右下角坐标,类似qq截图
    region = im.crop(box)
    region.save("image_region.jpg")
    # 处理子图,旋转180度,粘贴回原图
    region = region.transpose(Image.ROTATE_180)
    im.paste(region, box)
    im.save("image_paste.jpg")

image_region.jpg

a33.3.png


image_paste.jpg

a33.4.png


左右翻转图片

def roll_image():
    im = Image.open("image_region.jpg")
    image = im.copy()
    delta = 2
    width_half = image.width // delta
    box_left = (0, 0, width_half, image.height)
    box_right = (width_half, 0, image.width, image.height)
    part_left = image.crop(box_left)
    part_right = image.crop(box_right)
    image.paste(part_left, box_right)
    image.paste(part_right, box_left)
    image.save("image_roll.jpg")

image_roll.jpg

a33.5.png


图片的分离和合并

def split_merge():
    im = Image.open("image_region.jpg")
    r, g, b = im.split()
    print(r, g, b)
    r.save("r.jpg")
    g.save("g.jpg")
    b.save("b.jpg")
    image = Image.merge("RGB", (r, g, b))
    image.save("image_merge.jpg")

r.jpg

a33.6.png


g.jpg

a33.7.png


b.jpg

a33.8.png


image_merge.jpg

a33.9.png


改变大小

def resize():
    im = Image.open("image_region.jpg")
    out = im.resize((128, 128))
    out.save("image_resize.jpg")

image_resize.jpg

a33.10.png


旋转图片

def rotate():
    im = Image.open("image_region.jpg")
    out = im.rotate(45)
    out.save("image_rotate.jpg")

a33.11.png


转置图片

逆时针

def transpose():
    im = Image.open("image_region.jpg")
    # 左右镜像
    out = im.transpose(Image.FLIP_LEFT_RIGHT)
    out.save("image_flip_left_right.jpg")
    # 上下镜像
    out = im.transpose(Image.FLIP_TOP_BOTTOM)
    out.save("image_flip_top_bottom.jpg")
    # 旋转90度
    out = im.transpose(Image.ROTATE_90)
    out.save("image_rotate_90.jpg")
    # 旋转180度
    out = im.transpose(Image.ROTATE_180)
    out.save("image_rotate_180.jpg")
    # 旋转270度
    out = im.transpose(Image.ROTATE_270)
    out.save("image_rotate_270.jpg")

image_flip_left_right.jpg

a33.12.png


image_rotate_90.jpg

a33.13.png


转为黑白图片

def convert_l():
    im = Image.open('image_region.jpg').convert('L')
    im.save("image_l.jpg")

mage_l.jpg

a33.14.png


图像增强

from PIL import ImageFilter
def filter():
    im = Image.open('image_region.jpg')
    im.filter(ImageFilter.DETAIL)
    im.save("image_detail.jpg")

image_detail.jpg

a33.15.png


像素点处理

im = Image.open('image_region.jpg')
out = im.point(lambda i: i * 1.2)
out.save("image_point.jpg")

image_region.jpg

a33.16.png


参考

  1. PIL 中的 Image 模块
  2. Python图像处理库:Pillow 初级教程
相关文章
|
机器学习/深度学习 算法 TensorFlow
动物识别系统Python+卷积神经网络算法+TensorFlow+人工智能+图像识别+计算机毕业设计项目
动物识别系统。本项目以Python作为主要编程语言,并基于TensorFlow搭建ResNet50卷积神经网络算法模型,通过收集4种常见的动物图像数据集(猫、狗、鸡、马)然后进行模型训练,得到一个识别精度较高的模型文件,然后保存为本地格式的H5格式文件。再基于Django开发Web网页端操作界面,实现用户上传一张动物图片,识别其名称。
395 1
动物识别系统Python+卷积神经网络算法+TensorFlow+人工智能+图像识别+计算机毕业设计项目
|
7月前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的【害虫识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
害虫识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了12种常见的害虫种类数据集【"蚂蚁(ants)", "蜜蜂(bees)", "甲虫(beetle)", "毛虫(catterpillar)", "蚯蚓(earthworms)", "蜚蠊(earwig)", "蚱蜢(grasshopper)", "飞蛾(moth)", "鼻涕虫(slug)", "蜗牛(snail)", "黄蜂(wasp)", "象鼻虫(weevil)"】 再使用通过搭建的算法模型对数据集进行训练得到一个识别精度较高的模型,然后保存为为本地h5格式文件。最后使用Djan
391 1
基于Python深度学习的【害虫识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
|
8月前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的【蘑菇识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
蘑菇识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了9种常见的蘑菇种类数据集【"香菇(Agaricus)", "毒鹅膏菌(Amanita)", "牛肝菌(Boletus)", "网状菌(Cortinarius)", "毒镰孢(Entoloma)", "湿孢菌(Hygrocybe)", "乳菇(Lactarius)", "红菇(Russula)", "松茸(Suillus)"】 再使用通过搭建的算法模型对数据集进行训练得到一个识别精度较高的模型,然后保存为为本地h5格式文件。最后使用Django框架搭建了一个Web网页平台可视化操作界面,
639 11
基于Python深度学习的【蘑菇识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
|
10月前
|
机器学习/深度学习 人工智能 算法
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
宠物识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了37种常见的猫狗宠物种类数据集【'阿比西尼亚猫(Abyssinian)', '孟加拉猫(Bengal)', '暹罗猫(Birman)', '孟买猫(Bombay)', '英国短毛猫(British Shorthair)', '埃及猫(Egyptian Mau)', '缅因猫(Maine Coon)', '波斯猫(Persian)', '布偶猫(Ragdoll)', '俄罗斯蓝猫(Russian Blue)', '暹罗猫(Siamese)', '斯芬克斯猫(Sphynx)', '美国斗牛犬
494 29
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
|
机器学习/深度学习 人工智能 算法
植物病害识别系统Python+卷积神经网络算法+图像识别+人工智能项目+深度学习项目+计算机课设项目+Django网页界面
植物病害识别系统。本系统使用Python作为主要编程语言,通过收集水稻常见的四种叶片病害图片('细菌性叶枯病', '稻瘟病', '褐斑病', '稻瘟条纹病毒病')作为后面模型训练用到的数据集。然后使用TensorFlow搭建卷积神经网络算法模型,并进行多轮迭代训练,最后得到一个识别精度较高的算法模型,然后将其保存为h5格式的本地模型文件。再使用Django搭建Web网页平台操作界面,实现用户上传一张测试图片识别其名称。
415 22
植物病害识别系统Python+卷积神经网络算法+图像识别+人工智能项目+深度学习项目+计算机课设项目+Django网页界面
|
存储 JSON API
Python| 如何使用 DALL·E 和 OpenAI API 生成图像(1)
Python| 如何使用 DALL·E 和 OpenAI API 生成图像(1)
Python| 如何使用 DALL·E 和 OpenAI API 生成图像(1)
|
机器学习/深度学习 人工智能 TensorFlow
使用Python和TensorFlow实现图像识别
【8月更文挑战第31天】本文将引导你了解如何使用Python和TensorFlow库来实现图像识别。我们将从基本的Python编程开始,逐步深入到TensorFlow的高级功能,最后通过一个简单的代码示例来展示如何训练一个模型来识别图像。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的信息。
356 53
|
机器学习/深度学习 人工智能 算法
鸟类识别系统Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+ResNet50算法模型+图像识别
鸟类识别系统。本系统采用Python作为主要开发语言,通过使用加利福利亚大学开源的200种鸟类图像作为数据集。使用TensorFlow搭建ResNet50卷积神经网络算法模型,然后进行模型的迭代训练,得到一个识别精度较高的模型,然后在保存为本地的H5格式文件。在使用Django开发Web网页端操作界面,实现用户上传一张鸟类图像,识别其名称。
426 12
鸟类识别系统Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+ResNet50算法模型+图像识别
|
11月前
|
机器学习/深度学习 TensorFlow 算法框架/工具
利用Python和TensorFlow构建简单神经网络进行图像分类
利用Python和TensorFlow构建简单神经网络进行图像分类
268 3
|
算法 计算机视觉 Python
python利用opencv进行相机标定获取参数,并根据畸变参数修正图像附有全部代码(流畅无痛版)
该文章详细介绍了使用Python和OpenCV进行相机标定以获取畸变参数,并提供了修正图像畸变的全部代码,包括生成棋盘图、拍摄标定图像、标定过程和畸变矫正等步骤。
python利用opencv进行相机标定获取参数,并根据畸变参数修正图像附有全部代码(流畅无痛版)

推荐镜像

更多