-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathexample_usage.py
More file actions
92 lines (67 loc) · 2.92 KB
/
Copy pathexample_usage.py
File metadata and controls
92 lines (67 loc) · 2.92 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
import cv2
import numpy as np
from radar_optical_flow import extrapolate_radar_image, OpticalFlowMethod, RadarOpticalFlowExtrapolation
def create_sample_radar_images():
img1 = np.zeros((400, 400, 3), dtype=np.uint8)
cv2.circle(img1, (150, 150), 50, (0, 255, 0), -1)
cv2.circle(img1, (250, 250), 30, (0, 200, 0), -1)
img2 = np.zeros((400, 400, 3), dtype=np.uint8)
cv2.circle(img2, (170, 170), 50, (0, 255, 0), -1)
cv2.circle(img2, (270, 270), 30, (0, 200, 0), -1)
cv2.imwrite('radar_image1.png', img1)
cv2.imwrite('radar_image2.png', img2)
print("示例雷达图像已创建: radar_image1.png, radar_image2.png")
def test_all_methods():
print("\n=== 测试所有光流法算法 ===\n")
methods = ["farneback", "lucas_kanade", "dis"]
for method in methods:
print(f"测试方法: {method}")
try:
result = extrapolate_radar_image(
'radar_image1.png',
'radar_image2.png',
f'extrapolated_{method}.png',
method=method,
steps=1
)
print(f"✓ {method} 方法成功,输出: extrapolated_{method}.png")
except Exception as e:
print(f"✗ {method} 方法失败: {e}")
print()
def test_multiple_steps():
print("\n=== 测试多步外推 ===\n")
for steps in [1, 2, 3]:
print(f"外推步数: {steps}")
try:
result = extrapolate_radar_image(
'radar_image1.png',
'radar_image2.png',
f'extrapolated_steps_{steps}.png',
method="farneback",
steps=steps
)
print(f"✓ {steps}步外推成功,输出: extrapolated_steps_{steps}.png")
except Exception as e:
print(f"✗ {steps}步外推失败: {e}")
print()
def test_api_usage():
print("\n=== 测试API调用方式 ===\n")
img1 = cv2.imread('radar_image1.png')
img2 = cv2.imread('radar_image2.png')
extrapolator = RadarOpticalFlowExtrapolation(method=OpticalFlowMethod.FARNEBACK)
extrapolated = extrapolator.extrapolate(img1, img2, steps=1)
cv2.imwrite('extrapolated_api.png', extrapolated)
print("✓ API方式调用成功,输出: extrapolated_api.png")
if __name__ == "__main__":
print("=== 雷达回波图光流法外推测试 ===")
create_sample_radar_images()
test_all_methods()
test_multiple_steps()
test_api_usage()
print("\n=== 所有测试完成 ===")
print("\n使用说明:")
print("1. 命令行方式:")
print(" python radar_optical_flow.py radar_image1.png radar_image2.png output.png [method] [steps]")
print("\n2. 代码调用方式:")
print(" from radar_optical_flow import extrapolate_radar_image")
print(" extrapolate_radar_image('img1.png', 'img2.png', 'output.png', method='farneback', steps=1)")