python的rectangle函数举例
时间: 2023-06-26 13:08:13 浏览: 324
Python中的`rectangle()`函数通常用于绘制矩形。
下面是一个简单的示例,演示如何在Python中使用`rectangle()`函数绘制一个矩形:
```python
import matplotlib.pyplot as plt
# 定义矩形的位置和大小
x = 1
y = 1
width = 5
height = 3
# 绘制矩形
rect = plt.Rectangle((x, y), width, height, color='r')
# 创建一个绘图对象并添加矩形
fig, ax = plt.subplots()
ax.add_patch(rect)
# 显示图形
plt.show()
```
这段代码将绘制一个红色矩形,其左下角位于 `(1, 1)`,宽度为 `5`,高度为 `3`。可以根据需要调整这些参数以获得所需的矩形。
相关问题
在masixpy中img.draw_rectangle,举例说明具体用法
在MaxiPy中,img.draw_rectangle函数用于在图像上绘制矩形框,其具体用法如下:
```python
import maxipy as mx
# 创建一个空白图像
image = mx.Image(width=640, height=480)
# 定义矩形框的位置和大小
x = 100
y = 100
width = 200
height = 150
# 绘制矩形框
image.draw_rectangle(x, y, width, height, color=(255, 0, 0), thickness=2)
# 显示图像
image.show()
```
在上述代码中,首先导入maxipy库,然后创建一个空白图像对象image,指定其宽度和高度。接下来,通过调用image对象的draw_rectangle方法来绘制矩形框,传入矩形框的左上角坐标(x, y),矩形框的宽度和高度,以及颜色和线条粗细参数。最后,调用image对象的show方法来显示图像。
需要注意的是,颜色参数color是一个RGB元组,用于指定矩形框的颜色,而thickness参数用于指定矩形框线条的粗细程度。
以上就是在MaxiPy中使用img.draw_rectangle函数绘制矩形框的具体用法。
代码举例 python 活体检测
以下是基于OpenCV和dlib库的Python活体检测代码示例:
```python
import cv2
import dlib
# 初始化dlib面部检测器和预测器
detector = dlib.get_frontal_face_detector()
predictor = dlib.shape_predictor("shape_predictor_68_face_landmarks.dat")
# 初始化OpenCV视频捕获对象
cap = cv2.VideoCapture(0)
# 循环读取视频帧
while True:
ret, frame = cap.read()
if not ret:
break
# 将帧转换为灰度图像
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
# 使用dlib面部检测器检测面部区域
faces = detector(gray)
# 遍历检测到的面部区域
for face in faces:
# 获取面部区域的68个关键点
landmarks = predictor(gray, face)
# 将关键点转换为NumPy数组
landmarks = dlib.full_object_detections_to_points(landmarks)
# 使用OpenCV的solvePnP函数估计头部姿态
model_points = np.array([
(0.0, 0.0, 0.0), # 鼻子顶端
(0.0, -330.0, -65.0), # 下巴
(-225.0, 170.0, -135.0), # 左眼角
(225.0, 170.0, -135.0), # 右眼角
(-150.0, -150.0, -125.0), # 左嘴角
(150.0, -150.0, -125.0) # 右嘴角
])
image_points = np.array([
landmarks[30], # 鼻子顶端
landmarks[8], # 下巴
landmarks[36], # 左眼角
landmarks[45], # 右眼角
landmarks[48], # 左嘴角
landmarks[54] # 右嘴角
])
focal_length = frame.shape[1]
center = (frame.shape[1]/2, frame.shape[0]/2)
camera_matrix = np.array([
[focal_length, 0, center[0]],
[0, focal_length, center[1]],
[0, 0, 1]
], dtype=np.float32)
dist_coeffs = np.zeros((4,1))
(success, rotation_vector, translation_vector) = cv2.solvePnP(model_points, image_points, camera_matrix, dist_coeffs)
# 计算头部姿态的欧拉角
rvec_matrix = cv2.Rodrigues(rotation_vector)[0]
proj_matrix = np.hstack((rvec_matrix, translation_vector))
eulerAngles = cv2.decomposeProjectionMatrix(proj_matrix)[6]
# 绘制面部区域和姿态信息
cv2.rectangle(frame, (face.left(), face.top()), (face.right(), face.bottom()), (0, 255, 0), 2)
cv2.putText(frame, "Yaw: " + str(round(eulerAngles[1], 2)), (10, 30), cv2.FONT_HERSHEY_SIMPLEX, 0.7, (0, 255, 0), 2)
cv2.putText(frame, "Pitch: " + str(round(eulerAngles[0], 2)), (10, 60), cv2.FONT_HERSHEY_SIMPLEX, 0.7, (0, 255, 0), 2)
cv2.putText(frame, "Roll: " + str(round(eulerAngles[2], 2)), (10, 90), cv2.FONT_HERSHEY_SIMPLEX, 0.7, (0, 255, 0), 2)
# 显示帧
cv2.imshow("Frame", frame)
# 按下“q”键退出循环
if cv2.waitKey(1) == ord('q'):
break
# 释放视频捕获对象和显示窗口
cap.release()
cv2.destroyAllWindows()
```
这段代码使用dlib面部检测器检测面部区域,然后使用OpenCV的solvePnP函数估计头部姿态。最后,它绘制面部区域和姿态信息,并在屏幕上显示帧。
阅读全文