文章目录- 一、PIL 常规修图操作
- 1. 读取图片
- 2. 图片缩放
- 3. 图片旋转
- 4. 图片裁剪
- 5. 图片滤镜
- 二、OpenCV 图像处理、视频处理、对象识别
- 三、scikit-image 视觉算法,包括滤波、形态学操作、图像分割、特征提取
- 四、TensorFlow 图像分类、目标检测、图像生成
- 1. 读取图片
- 2. 图片缩放
- 3. 图片旋转
- 4. 图片裁剪
- 5. 图片滤镜
有些小伙伴可能还不知道,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. 读取图片
代码语言:javascript复制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. 图片缩放
代码语言:javascript复制from PIL import Image
# 打开图片
img = Image.open("image.jpg")
# 缩放图片
img = img.resize((new_width, new_height))
# 保存图片
img.save("new_image.jpg")
3. 图片旋转
代码语言:javascript复制from PIL import Image
# 打开图片
img = Image.open("image.jpg")
# 旋转图片
img = img.rotate(angle)
# 保存图片
img.save("new_image.jpg")
4. 图片裁剪
代码语言:javascript复制from PIL import Image
# 打开图片
img = Image.open("image.jpg")
# 裁剪图片
img = img.crop((left, top, right, bottom))
# 保存图片
img.save("new_image.jpg")
5. 图片滤镜
代码语言:javascript复制from PIL import Image
from 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实现的简单示例,将一张图片转换为灰度图:
代码语言:javascript复制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实现的简单示例,将一张图片进行边缘检测:
代码语言:javascript复制from skimage import io, filters
# 读取图片
img = io.imread('image.jpg')
# 边缘检测
edges = filters.sobel(img)
# 显示图片
io.imshow(edges)
io.show()
四、TensorFlow 图像分类、目标检测、图像生成
TensorFlow是一个流行的机器学习库,可以用于图像处理、自然语言处理、数据分析等领域。它提供了各种深度学习模型和算法,可以用于图像分类、目标检测、图像生成等任务。
以下是一个使用TensorFlow实现的简单示例,使用预训练的模型进行图像分类:
代码语言:javascript复制import tensorflow as tf
import numpy as np
from 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])
以上是一些常用的图像处理库和技术的示例,可以根据需要进行选择和使用。