当前位置: 首页 > article >正文

Python 图像处理领域的十一个基础操作

在Python中,处理图像是一项既有趣又实用的技能。无论你是数据科学家、机器学习工程师,还是一名普通爱好者,掌握图像处理的基础操作都能为你的项目增添不少色彩。今天,我们就来聊聊Python图像处理领域的十一个基础操作。

1. 安装必要的库

首先,确保你已经安装了处理图像所需的库。最常用的库是Pillow(PIL的更新版)和OpenCV。你可以使用pip来安装它们:

pip install pillow opencv-python  

2. 打开和显示图像

使用Pillow库打开和显示图像非常简单。

from PIL import Image  
  
# 打开图像  
image = Image.open('example.jpg')  
  
# 显示图像  
image.show()  

这段代码会打开当前目录下的example.jpg文件,并使用系统默认的图像查看器显示它。

3. 读取和写入图像

Pillow库也支持读取和写入图像文件。

from PIL import Image  
  
# 读取图像  
image = Image.open('example.jpg')  
  
# 保存图像为新的文件  
image.save('new_example.jpg')  

这段代码读取example.jpg文件,并将其保存为new_example.jpg

4. 调整图像大小

调整图像大小是图像处理中的常见操作。

from PIL import Image  
  
# 打开图像  
image = Image.open('example.jpg')  
  
# 调整图像大小  
resized_image = image.resize((200, 200))  
  
# 显示调整大小后的图像  
resized_image.show()  

这段代码将图像的大小调整为200x200像素。

5. 裁剪图像

裁剪图像可以提取图像中的特定区域。

from PIL import Image  
  
# 打开图像  
image = Image.open('example.jpg')  
  
# 裁剪图像,参数为(左, 上, 右, 下)  
cropped_image = image.crop((50, 50, 200, 200))  
  
# 显示裁剪后的图像  
cropped_image.show()  

这段代码从图像的(50, 50)位置开始,裁剪出一个150x150的区域。

6. 旋转图像

旋转图像可以改变图像的视角。

from PIL import Image  
  
# 打开图像  
image = Image.open('example.jpg')  
  
# 旋转图像,参数为角度  
rotated_image = image.rotate(45)  
  
# 显示旋转后的图像  
rotated_image.show()  

这段代码将图像旋转45度。

7. 翻转图像

翻转图像可以产生镜像效果。

from PIL import Image  
  
# 打开图像  
image = Image.open('example.jpg')  
  
# 水平翻转图像  
flipped_image_horizontal = image.transpose(Image.FLIP_LEFT_RIGHT)  
  
# 垂直翻转图像  
flipped_image_vertical = image.transpose(Image.FLIP_TOP_BOTTOM)  
  
# 显示翻转后的图像  
flipped_image_horizontal.show()  
flipped_image_vertical.show()  

这段代码分别展示了如何水平翻转和垂直翻转图像。

8. 图像转灰度

将彩色图像转换为灰度图像是图像预处理中的常用步骤。

from PIL import Image  
  
# 打开图像  
image = Image.open('example.jpg')  
  
# 转换为灰度图像  
gray_image = image.convert('L')  
  
# 显示灰度图像  
gray_image.show()  

这段代码将彩色图像转换为灰度图像。

9. 图像二值化

图像二值化是将图像转换为只有黑白两种颜色的过程。

from PIL import Image  
  
# 打开图像  
image = Image.open('example.jpg')  
  
# 转换为灰度图像  
gray_image = image.convert('L')  
  
# 应用二值化,参数为阈值  
threshold = 128  
binary_image = gray_image.point(lambda x: 0 if x < threshold else 255, '1')  
  
# 显示二值化后的图像  
binary_image.show()  

这段代码首先将图像转换为灰度图像,然后应用二值化,阈值设置为128。

10. 图像模糊处理

模糊处理可以去除图像中的噪声或细节。

from PIL import Image, ImageFilter  
  
# 打开图像  
image = Image.open('example.jpg')  
  
# 应用模糊滤镜  
blurred_image = image.filter(ImageFilter.BLUR)  
  
# 显示模糊处理后的图像  
blurred_image.show()  

这段代码使用了Pillow库中的ImageFilter.BLUR滤镜来模糊图像。

11. 图像边缘检测

边缘检测是图像处理和计算机视觉中的基础操作,用于识别图像中的边缘。

import cv2  
import numpy as np  
  
# 读取图像  
image = cv2.imread('example.jpg', cv2.IMREAD_GRAYSCALE)  
  
# 应用Canny边缘检测  
edges = cv2.Canny(image, 100, 200)  
  
# 显示边缘检测后的图像  
cv2.imshow('Edges', edges)  
cv2.waitKey(0)  
cv2.destroyAllWindows()  

这段代码使用了OpenCV库来读取图像,并将其转换为灰度图像,然后应用Canny边缘检测算法。

实战案例:图像拼接

接下来,我们通过一个实战案例来展示如何应用上述知识。假设我们有两张图像,想要将它们拼接在一起。

from PIL import Image  
  
# 打开两张图像  
image1 = Image.open('image1.jpg')  
image2 = Image.open('image2.jpg')  
  
# 确保两张图像具有相同的高度  
if image1.height != image2.height:  
    image2 = image2.resize((int(image2.width * image1.height / image2.height), image1.height))  
  
# 拼接图像  
width1, height1 = image1.size  
width2, height2 = image2.size  
stitched_image = Image.new('RGB', (width1 + width2, height1))  
stitched_image.paste(image1, (0, 0))  
stitched_image.paste(image2, (width1, 0))  
  
# 显示拼接后的图像  
stitched_image.show()  

这段代码首先读取两张图像,确保它们具有相同的高度(如果不相同,则调整第二张图像的大小)。然后,创建一个新的图像来容纳拼接后的结果,并将两张图像粘贴到新图像中。

总结

在本文中,我们介绍了Python图像处理领域的十一个基础操作,包括安装必要的库、打开和显示图像、读取和写入图像、调整图像大小、裁剪图像、旋转图像、翻转图像、图像转灰度、图像二值化、图像模糊处理以及图像边缘检测。通过实际的代码示例,我们展示了每个操作是如何应用的。最后,我们通过一个实战案例——图像拼接,展示了如何将这些操作组合起来完成一个实际的图像处理任务。希望这些内容能够帮助你更好地理解和应用Python图像处理技术。

最后由于文章篇幅有限,文档资料内容较多,需要这些文档的朋友,可以加小助手微信免费获取,【保证100%免费】,中国人不骗中国人。

全套Python学习资料分享:

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述

图片

二、学习软件

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,还有环境配置的教程,给大家节省了很多时间。

图片

三、全套PDF电子书

书籍的好处就在于权威和体系健全,刚开始学习的时候你可以只看视频或者听某个人讲课,但等你学完之后,你觉得你掌握了,这时候建议还是得去看一下书籍,看权威技术书籍也是每个程序员必经之路。

图片

四、入门学习视频全套

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

图片

图片

五、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

图片

图片

在这里插入图片描述

最后

如果你也想自学Python,可以关注我。我会把踩过的坑分享给你,让你不要踩坑,提高学习速度,还整理出了一套系统的学习路线,这套资料涵盖了诸多学习内容:开发工具,基础视频教程,项目实战源码,51本电子书籍,100道练习题等。相信可以帮助大家在最短的时间内,能达到事半功倍效果,用来复习也是非常不错的。

希望这篇文章对你有帮助,也希望能帮到大家,因为你我都是热爱python的编程语言爱好者。


http://www.kler.cn/a/447329.html

相关文章:

  • macOS 配置 vscode 命令行启动
  • lpips使用笔记
  • 嵌入式单片机的运行方式详解
  • [JavaScript] 我该怎么去写一个canvas游戏
  • Windows server 服务器网络安全管理之防火墙出站规则设置
  • 坑人 C# MySql.Data SDK
  • 聚观早报 | 百度回应进军短剧;iPad Air将升级OLED
  • 7-2 排序
  • Android音频中常用的BT Format和Profile介绍
  • Excel智能公式,根据日期一键生成唯一订单编号
  • 【python因果库实战9】TMLE - 目标最大似然估计2
  • 如何使用 Python 连接 SQLite 数据库?
  • MicroPython+ESP32:五.PC远程控制LED灯
  • 36.2 内置的k8s采集任务分析
  • AI呼入机器人详解
  • ubuntu 执行sh脚本出现报错:source:not found
  • 界面控件DevExpress v24.2.3全新发布——正式支持.NET 9
  • 算法—回文链表
  • Docker的网络
  • 大语言模型的常用微调方法
  • 单片机上电后程序不运行怎么排查问题?
  • Soul Preserver
  • 圣诞快乐(h5 css js(圣诞树))
  • 大数据之Hbase环境安装
  • 【Linux】usb内核设备信息
  • Elixir Supervisor