文章目录
- 一、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])
以上是一些常用的图像处理库和技术的示例,可以根据需要进行选择和使用。