100天精通Python丨黑科技篇 —— 06、Python 修图(滤镜、灰度、裁剪、视觉处理、图像分割、特征提取)

2023-04-02 09:39:57 浏览数 (1)

文章目录
  • 一、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. 读取图片

代码语言: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])

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

0 人点赞