1. 完成对视频中飞机目标的实时跟踪,并显示矩形跟踪框; 2. 实时获取飞机形状几何中心的实时计算,在图中画出中心点标识,显示中心坐标; 3. 实时获取机头、垂尾等特征点二维坐标(至少完成其中一个),画出特征点,显示特征点坐标数值。使用python的代码
时间: 2024-02-29 18:56:33 浏览: 97
好的,以下是基于OpenCV的Python代码,可以实现视频中飞机目标的实时跟踪,并显示矩形跟踪框,实时获取飞机形状几何中心的实时计算,在图中画出中心点标识,显示中心坐标,以及实时获取机头、垂尾等特征点二维坐标(以机头为例),画出特征点,显示特征点坐标数值:
```python
import cv2
import numpy as np
# 加载视频文件
cap = cv2.VideoCapture('aircraft_video.mp4')
# 创建跟踪器,选择KCF算法
tracker = cv2.TrackerKCF_create()
# 读取第一帧
ret, frame = cap.read()
# 确定跟踪框的初始位置
bbox = cv2.selectROI(frame, False)
# 初始化跟踪器
tracker.init(frame, bbox)
# 获取视频帧率
fps = cap.get(cv2.CAP_PROP_FPS)
# 定义字体
font = cv2.FONT_HERSHEY_SIMPLEX
# 定义机头特征点坐标
nose_coords = []
while True:
# 读取视频帧
ret, frame = cap.read()
# 判断是否成功读取视频帧
if not ret:
break
# 开始计时
timer = cv2.getTickCount()
# 更新跟踪器
success, bbox = tracker.update(frame)
# 计算帧率
fps = cv2.getTickFrequency() / (cv2.getTickCount() - timer)
if success:
# 跟踪成功,显示跟踪框
x, y, w, h = [int(i) for i in bbox]
cv2.rectangle(frame, (x, y), (x + w, y + h), (0, 255, 0), 2)
# 计算飞机形状几何中心坐标
center_x = x + w // 2
center_y = y + h // 2
# 在图中画出中心点标识,显示中心坐标
cv2.circle(frame, (center_x, center_y), 5, (0, 0, 255), -1)
cv2.putText(frame, f"Center: ({center_x}, {center_y})", (10, 50), font, 1, (0, 0, 255), 2, cv2.LINE_AA)
# 计算机头坐标
nose_x = x + w
nose_y = y + h // 2
# 记录机头特征点坐标
nose_coords.append((nose_x, nose_y))
# 在图中画出机头特征点,显示坐标数值
cv2.circle(frame, (nose_x, nose_y), 5, (255, 0, 0), -1)
cv2.putText(frame, f"Nose: ({nose_x}, {nose_y})", (10, 100), font, 1, (255, 0, 0), 2, cv2.LINE_AA)
else:
# 跟踪失败,提示用户
cv2.putText(frame, "Tracking failed!", (10, 50), font, 1, (0, 0, 255), 2, cv2.LINE_AA)
# 显示帧率
cv2.putText(frame, f"FPS: {int(fps)}", (10, 30), font, 1, (0, 0, 255), 2, cv2.LINE_AA)
# 显示视频帧
cv2.imshow('frame', frame)
# 按下q键退出循环
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# 释放资源
cap.release()
cv2.destroyAllWindows()
```
这段代码使用了OpenCV中的`cv2.TrackerKCF_create()`函数来创建跟踪器,并使用`tracker.init()`函数来初始化跟踪器。在每一帧中,使用`tracker.update()`函数来更新跟踪器,并在跟踪成功的情况下显示跟踪框、计算飞机形状几何中心坐标、画出中心点标识并显示中心坐标、计算机头坐标、记录机头特征点坐标、画出机头特征点并显示坐标数值等等。
阅读全文
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pptx](https://img-home.csdnimg.cn/images/20241231044947.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)