文章目录

    • 一、PIL 常规修图操作
      • 1. 读取图片
      • 2. 图片缩放
      • 3. 图片旋转
      • 4. 图片裁剪
      • 5. 图片滤镜
    • 二、OpenCV 图像处理、视频处理、对象识别
    • 三、scikit-image 视觉算法,包括滤波、形态学操作、图像分割、特征提取
    • 四、TensorFlow 图像分类、目标检测、图像生成

有些小伙伴可能还不知道,Python的强大图片处理能力,今天西红柿来介绍一二。Python可以通过各种库(如Pillow、OpenCV、matplotlib等)进行图像的读取、修改、保存、显示等操作。Python可以对图片进行裁剪、旋转、缩放、滤镜、颜色调整等处理,还可以进行图像识别、图像分割、图像合成等高级图像处理。Python的图像处理能力不仅可以应用于计算机视觉、图像识别、机器学习等领域,也可以应用于图像处理软件开发、图像处理算法研究等方面。

Python 拼图效果展示

本文收录于 《100天精通Python专栏 – 快速入门到黑科技》,是由 CSDN 内容合伙人丨全站排名 Top 4 的硬核博主 不吃西红柿 倾力打造,分基础知识篇和黑科技应用两大部分,欢迎订阅本专栏,订阅后可私聊进Python全栈VIP交流群(问题解答、互相帮助)还可领取20GPython视频和100本互联网行业电子书。

  • 基础知识篇以理论知识为主,旨在帮助没有语言基础的小伙伴,学习我整理成体系的精华知识,快速入门构建起知识框架;
  • 黑科技应用篇以实战为主,包括数据分析、机器学习、计算机视觉、自然语言处理、数据可视化等等,让你真的会用Python解决实际问题。
学习路径指引专栏定位适宜人群
体系化学习丨100天精通Python专栏 快速入门没有语言基础,精华学习,快速掌握
黑科技实战丨100天精通Python专栏 玩转技术有一定的基础,学以致用
CSDN x 信息技术智库社区 交流互助你不是一个人在编程!!

一、PIL 常规修图操作

以下是使用Python处理图片的示例代码:

1. 读取图片

from PIL import Image# 打开图片img = Image.open("image.jpg")# 显示图片img.show()# 获取图片尺寸width, height = img.size# 获取像素数据pixels = img.load()# 遍历像素for x in range(width):    for y in range(height):        r, g, b = pixels[x, y]        # 处理像素

2. 图片缩放

from PIL import Image# 打开图片img = Image.open("image.jpg")# 缩放图片img = img.resize((new_width, new_height))# 保存图片img.save("new_image.jpg")

3. 图片旋转

from PIL import Image# 打开图片img = Image.open("image.jpg")# 旋转图片img = img.rotate(angle)# 保存图片img.save("new_image.jpg")

4. 图片裁剪

from PIL import Image# 打开图片img = Image.open("image.jpg")# 裁剪图片img = img.crop((left, top, right, bottom))# 保存图片img.save("new_image.jpg")

5. 图片滤镜

from PIL import Imagefrom PIL import ImageFilter# 打开图片img = Image.open("image.jpg")# 添加滤镜img = img.filter(ImageFilter.GaussianBlur(radius))# 保存图片img.save("new_image.jpg")

以上是西红柿会用到的一些常用的图片处理操作的示例代码,具体实现可根据需要进行修改和调整。

当然,Python 还有很多其他强大的图片处理库和技术可以使用,虽然无法满足专业的修图需求,但脚本化一键处理,西红柿觉得也非常使用,以下是一些示例:

二、OpenCV 图像处理、视频处理、对象识别

OpenCV是一个广泛使用的计算机视觉库,可以用于图像处理、视频处理、对象识别等。它支持Python、C++、Java等多种编程语言。

下面是一个使用OpenCV实现的简单示例,将一张图片转换为灰度图:

import cv2# 读取图片img = cv2.imread('image.jpg')# 转换为灰度图gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)# 显示图片cv2.imshow('gray', gray)cv2.waitKey(0)cv2.destroyAllWindows()

三、scikit-image 视觉算法,包括滤波、形态学操作、图像分割、特征提取

scikit-image是一个基于Python的图像处理库,提供了各种图像处理和计算机视觉算法,包括滤波、形态学操作、图像分割、特征提取等。

以下是一个使用scikit-image实现的简单示例,将一张图片进行边缘检测:

from skimage import io, filters# 读取图片img = io.imread('image.jpg')# 边缘检测edges = filters.sobel(img)# 显示图片io.imshow(edges)io.show()

四、TensorFlow 图像分类、目标检测、图像生成

TensorFlow是一个流行的机器学习库,可以用于图像处理、自然语言处理、数据分析等领域。它提供了各种深度学习模型和算法,可以用于图像分类、目标检测、图像生成等任务。

以下是一个使用TensorFlow实现的简单示例,使用预训练的模型进行图像分类:

import tensorflow as tfimport numpy as npfrom PIL import Image# 加载模型model = tf.keras.applications.MobileNetV2()# 读取图片img = Image.open('image.jpg').resize((224, 224))img = np.array(img)# 预处理图片img = tf.keras.applications.mobilenet_v2.preprocess_input(img)# 进行预测predictions = model.predict(np.array([img]))# 显示结果print(tf.keras.applications.mobilenet_v2.decode_predictions(predictions, top=1)[0])

以上是一些常用的图像处理库和技术的示例,可以根据需要进行选择和使用。