欢迎访问宙启技术站
智能推送

Python中图形绘制和图像处理函数的使用方法

发布时间:2023-06-12 04:54:58

Python 是一种充满强大图形功能的编程语言,它提供了一个丰富的图形绘制和图像处理函数库,以便您能够快速地创建和编辑图形。

在本文中,我们将会介绍一些常用的 Python 图形绘制和图像处理函数,并提供一些实例代码来演示如何使用它们。

1. 图形绘制函数

1.1 线条绘制函数

Python 提供了许多绘制线条的函数。其中一种最常用的方法是使用 cv2.line() 函数。该函数接受五个参数:图像对象、线条的起点坐标、线条的终点坐标、线条颜色和线条宽度。下面是一个简单的例子:

import cv2
import numpy as np

# 创建一个黑色的图像
img = np.zeros((512, 512, 3), np.uint8)

# 画一条 5 像素宽的直线,颜色为红色
cv2.line(img, (0, 0), (511, 511), (0, 0, 255), 5)

# 显示图像
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

输出:

![line](https://img-blog.csdnimg.cn/20210817191332352.png)

1.2 矩形绘制函数

cv2.rectangle() 函数可以用来绘制矩形。该函数接受五个参数:图像对象、矩形的左上角坐标、矩形的右下角坐标、矩形颜色和线条宽度(如果为负数,则表示填充整个矩形)。

import cv2
import numpy as np

# 创建一个黑色的图像
img = np.zeros((512, 512, 3), np.uint8)

# 绘制一个矩形
cv2.rectangle(img, (384, 0), (510, 128), (0, 255, 0), 3)

# 显示图像
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

输出:

![rectangle](https://img-blog.csdnimg.cn/20210817191401912.png)

1.3 圆形绘制函数

cv2.circle() 函数可以用来绘制圆形。该函数接受五个参数:图像对象、圆心坐标、半径、圆形颜色和线条宽度。

import cv2
import numpy as np

# 创建一个黑色的图像
img = np.zeros((512, 512, 3), np.uint8)

# 绘制一个圆形
cv2.circle(img, (447, 63), 63, (0, 0, 255), -1)

# 显示图像
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

输出:

![circle](https://img-blog.csdnimg.cn/20210817191456423.png)

1.4 椭圆绘制函数

cv2.ellipse() 函数可以用来绘制椭圆。该函数接受六个参数:图像对象、椭圆中心点坐标、长轴和短轴的长度、椭圆倾斜角度、椭圆的起始角度和终止角度、椭圆颜色和线条宽度。

import cv2
import numpy as np

# 创建一个黑色的图像
img = np.zeros((512, 512, 3), np.uint8)

# 绘制一个椭圆
cv2.ellipse(img, (256, 256), (100, 50), 0, 0, 180, 255, -1)

# 显示图像
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

输出:

![ellipse](https://img-blog.csdnimg.cn/20210817191518546.png)

1.5 多边形绘制函数

cv2.polylines() 函数可以用来绘制多边形。该函数接受五个参数:图像对象、多边形的顶点坐标、是否闭合线段、线条颜色和线条宽度。

import cv2
import numpy as np

# 创建一个黑色的图像
img = np.zeros((512, 512, 3), np.uint8)

# 绘制几何形状
pts = np.array([[10, 5], [20, 30], [70, 20], [50, 10]], np.int32)
pts = pts.reshape((-1, 1, 2))
cv2.polylines(img, [pts], True, (0, 255, 255))

# 显示图像
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

输出:

![polylines](https://img-blog.csdnimg.cn/20210817191605414.png)

2. 图像处理函数

2.1 图像读取和显示

cv2.imread() 函数可以用来读取图像文件, cv2.imshow() 函数可以用来显示读取的图像。

import cv2

# 读取图像文件
img = cv2.imread('lena.jpg')

# 显示图像
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

输出:

![lena](https://img-blog.csdnimg.cn/2021081719165635.png)

2.2 颜色空间转换

cv2.cvtColor() 函数可以用来将图像从一个颜色空间转换到另一个颜色空间。

import cv2

# 读取图像文件
img = cv2.imread('lena.jpg')

# 转换为灰度图像
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

# 显示灰度图像
cv2.imshow('image', gray)
cv2.waitKey(0)
cv2.destroyAllWindows()

输出:

![gray](https://img-blog.csdnimg.cn/20210817191742535.png)

2.3 调整图像大小

cv2.resize() 函数可以用来调整图像的大小。

import cv2

# 读取图像文件
img = cv2.imread('lena.jpg')

# 调整图像大小
resized = cv2.resize(img, (0, 0), fx=0.5, fy=0.5)

# 显示调整后的图像
cv2.imshow('image', resized)
cv2.waitKey(0)
cv2.destroyAllWindows()

输出:

![resized](https://img-blog.csdnimg.cn/20210817191919130.png)

2.4 旋转图像

cv2.getRotationMatrix2D() 函数可以用来旋转图像,并且可以指定旋转中心点和旋转角度。

import cv2
import numpy as np

# 读取图像文件
img = cv2.imread('lena.jpg')

# 获取图像的行和列
rows, cols = img.shape[:2]

# 获得旋转矩阵
center = (cols/2, rows/2)
M = cv2.getRotationMatrix2D(center, 45, 1)

# 应用旋转矩阵
rotated = cv2.warpAffine(img, M, (cols, rows))

# 显示旋转后的图像
cv2.imshow('image', rotated)
cv2.waitKey(0)
cv2.destroyAllWindows()

输出:

![rotated](https://img-blog.csdnimg.cn/20210817192047225.png)

3. 总结

以上就是一些常用的 Python 图形绘制和图像处理函数和应用实例。它们可以帮助您快速地创建和编辑图形和图像,并且具有广泛的应用。