当前位置:   article > 正文

python 处理图片的10个库(非常详细)零基础入门到精通,收藏这一篇就够了_python图形库

python图形库

Matplotlib

类型: 数据可视化库

功能: 创建线图、柱状图、散点图、直方图、饼图等多种静态图表,支持子图布局、色彩映射、图例、注解等高级定制。

适用场景: 科研论文、报告、数据分析展示。

import matplotlib.pyplot as plt``import numpy as np``x = np.linspace(0, 2 * np.pi, 400)``y = np.sin(x ** 2)``plt.figure(figsize=(8, 6))``plt.plot(x, y)``plt.title('Sine of Squared X')``plt.xlabel('X', fontsize=14)``plt.ylabel('Y', fontsize=14)``plt.grid(True)``plt.show()
  • 1

PIL/Pillow

类型: 图像处理库

功能: 打开、修改、保存多种格式的图像文件,支持像素级操作、裁剪、旋转、缩放、颜色空间转换、滤镜应用等。

适用场景: 基本图像编辑、批处理、Web开发中的图像预处理。

from PIL import Image, ImageDraw, ImageFont``# 创建一个空白图像``img = Image.new('RGB', (500, 300), color='white')``# 创建绘图对象``draw = ImageDraw.Draw(img)``# 写入文字``font = ImageFont.truetype('arial.ttf', size=50)``text = "Hello, World!"``text_width, text_height = font.getsize(text)``draw.text((img.width // 2 - text_width // 2, img.height // 2 - text_height // 2), text=text, fill='black', font=font)``# 保存图像``img.save('hello_world.png')
  • 1

字体下载链接:https://font.chinaz.com/120308013581.htm

NumPy

类型: 数值计算库

功能: 提供高效的多维数组对象(ndarray),是处理图像数据的基础。图像通常被表示为NumPy数组,便于进行数学运算和算法处理。

适用场景: 图像数据的基本操作、与图像处理库配合使用。

import numpy as np``import matplotlib.pyplot as plt``# 创建一个5x5的随机数组``img_array = np.random.randint(0, 256, size=(5, 5), dtype=np.uint8)``# 显示数组作为灰度图像``plt.imshow(img_array, cmap='gray')``plt.colorbar()``plt.title('Random 5x5 Image Array')``plt.show()
  • 1

scikit-image (skimage)

类型: 计算机视觉库

功能: 提供大量图像处理算法,包括滤波、边缘检测、形态学操作、图像分割、特征提取、色彩空间转换等。

适用场景: 学术研究、工业应用中的图像分析与处理。

from skimage import io``from skimage.filters import sobel``from matplotlib import pyplot as plt``   ``# 读取图像``image = io.imread('example.jpg', as_gray=True)# 替换成需要处理的图片``# 应用 Sobel 边缘检测``edges = sobel(image)``# 显示原图和边缘检测结果``fig, ax = plt.subplots(nrows=1, ncols=2, figsize=(10, 5))``ax[0].imshow(image, cmap='gray')``ax[0].set_title('Original Image')``ax[1].imshow(edges, cmap='gray')``ax[1].set_title('Sobel Edge Detection')``plt.tight_layout()``plt.show()
  • 1

OpenCV

类型: 计算机视觉库

功能: 高性能的图像与视频处理、物体检测与识别、跟踪、立体视觉、机器学习算法等。

适用场景: 实时视频处理、复杂图像分析、深度学习应用。

import cv2``import numpy as np``# 读取图像``image = cv2.imread('example.jpg')``# 转为灰度图像``gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)``# 应用Canny边缘检测``edges = cv2.Canny(gray, threshold1=100, threshold2=200)``# 显示原图和边缘检测结果``cv2.imshow('Original Image', image)``cv2.imshow('Canny Edge Detection', edges)``cv2.waitKey(0)``cv2.destroyAllWindows()
  • 1

Seaborn

类型: 数据可视化库(基于Matplotlib)

功能: 提供更美观、更高级的数据可视化接口,专注于统计图形,如热图、箱线图、小提琴图、联合分布图等。

适用场景: 数据探索性分析、统计报告、交互式可视化。

import seaborn as sns``import pandas as pd``import numpy as np``from matplotlib import pyplot as plt``   ``# 创建模拟数据``data = pd.DataFrame({'x': np.random.normal(size=100),`                     `'y': np.random.normal(size=100),`                     `'class': np.repeat(['A', 'B'], 50)})``# 绘制散点图并按类别着色``sns.scatterplot(data=data, x='x', y='y', hue='class', palette=['red', 'blue'])``plt.title('Seaborn Scatterplot with Class Coloring')``plt.show()
  • 1

Plotly

类型: 数据可视化库

功能: 创建交互式图表,支持Web浏览器展示,包括2D/3D图表、地图、仪表盘等,可导出为HTML或嵌入到Web应用程序中。

适用场景: Web应用的数据可视化、在线报告、动态交互式图表。

import plotly.graph_objs as go``import numpy as np``# 创建数据``t = np.linspace(0, 2 * np.pi, 100)``x = np.cos(t)``y = np.sin(t)``# 构建 Plotly 图表对象``fig = go.Figure(data=[go.Scatter(x=t, y=x, name='Cosine'),`                       `go.Scatter(x=t, y=y, name='Sine')])``# 设置图表属性``fig.update_layout(title='Plotly Interactive Plot',`                  `xaxis_title='Time',`                  `yaxis_title='Value')``# 显示图表``fig.show()
  • 1

Bokeh

类型: 数据可视化库

功能: 制作高性能交互式图表,支持大型数据集,输出为HTML,可在现代Web浏览器中展示,提供丰富的用户交互和实时更新能力。

适用场景: 大数据可视化、Web应用程序中的实时数据流展示、仪表盘构建。

from bokeh.plotting import figure, show``from bokeh.io import output_notebook``import numpy as np``output_notebook()``t = np.linspace(0, 2*np.pi, ¼00)``x = np.cos(t)``y = np.sin(t)``p = figure(title="Bokeh Interactive Plot", plot_width=600, plot_height=400)``p.line(t, x, legend_label="cosine", line_width=2)``p.line(t, y, legend_label="sine", line_color="orange", line_width=2)``show(p)
  • 1

Pycairo

类型: 矢量图形库绑定

功能: 通过Python接口调用Cairo库进行矢量图形绘制,支持SVG、PDF、PostScript等格式输出,保持图像无损缩放。

适用场景: 创建高质量的矢量图形、图标设计、打印出版物。

import cairo``surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, 200, 200)``ctx = cairo.Context(surface)``ctx.set_source_rgb(1, 1, 1)  # Set background color to white``ctx.rectangle(0, 0, surface.get_width(), surface.get_height())``ctx.fill()``ctx.set_source_rgb(0, 0, 0)  # Set drawing color to black``ctx.select_font_face("Sans")``ctx.set_font_size(32)``ctx.move_to(50, ½0)``ctx.show_text("Hello, Pycairo!")``surface.write_to_png('hello_pycairo.png')
  • 1

SimpleCV

类型: 计算机视觉库(封装了OpenCV、PIL、NumPy)

功能: 提供易用的API,简化计算机视觉任务,如图像获取、预处理、特征检测、物体识别等。

适用场景: 初学者快速上手计算机视觉项目、教育和原型开发。

from SimpleCV import Camera, Display``# 初始化摄像头``cam = Camera()``# 创建显示窗口``disp = Display()``while True:`    `# 获取一帧图像`    `img = cam.getImage()`    `# 对图像进行灰度处理`    `gray_img = img.grayscale()`    `# 在窗口中显示图像`    `gray_img.show(disp)`    `# 检查是否有按键事件(如'q'键按下退出循环)`    `if disp.isDone():`        `break``disp.destroy()
  • 1

为了帮助大家更好的学习网络安全,我给大家准备了一份网络安全入门/进阶学习资料,里面的内容都是适合零基础小白的笔记和资料,不懂编程也能听懂、看懂这些资料!

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

[2024最新CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享]


在这里插入图片描述

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

[2024最新CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享]
在这里插入图片描述

在这里插入图片描述

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

[2024最新CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享]

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/酷酷是懒虫/article/detail/950119
推荐阅读
相关标签
  

闽ICP备14008679号