for sensor_name, image in sensor2image.items(): print("-----sensor___name: ", sensor_name) if image.shape[0] > 720: image = cv2.resize(image, None, fx=0.6, fy=0.6) cv2.imshow(sensor_name, image) cv2.imshow("bev_img", vis_bev_img) #10 k = cv2.waitKey(0) syn_json_time=get_em_obs_json(vis_msg) # if args.em: # syn_json_time=get_em_obs_json(vis_msg) # show_json_file_content(file_name=syn_json_time) if k == 112: # p print(json.dumps({"vis": vis_msg["obstacles"]}, indent=4)) if k == 27: cv2.destroyAllWindows() break elif k == 114: # r idx += 5 elif k == 98: # b idx -= 5 elif k == 82: # <- idx -= 1 else: idx += 1 else: idx += 1这个代码中 syn_json_time随着按键的控制每次得到一个新的值,写一个函数,指定文件夹,根据 syn_json_time这个参数代表我要显示的json文件名,将这个json文件显示成一个界面,这个界面不会影响下面的按键控制显示的其他东西,随着这个参数的更新界面中的内容也会更新,不会影响代码的运行,也就是下面的按键也会影响 syn_json_time这个值的更新
时间: 2024-02-10 07:07:06 浏览: 60
可以写一个函数`display_json_file`,代码如下:
```
import json
import os
import cv2
def display_json_file(folder_path, json_file):
file_path = os.path.join(folder_path, json_file)
with open(file_path) as f:
data = json.load(f)
# 将 data 显示成界面
# ...
# 显示完毕后,可以继续按键控制,更新 syn_json_time 的值
while True:
k = cv2.waitKey(0)
if k == 27:
cv2.destroyAllWindows()
break
elif k == 114:
idx += 5
elif k == 98:
idx -= 5
elif k == 82:
idx -= 1
else:
idx += 1
syn_json_time = get_em_obs_json(vis_msg)
display_json_file(folder_path, syn_json_time)
```
在主函数中,可以将按下 "s" 键后的代码改成调用这个函数:
```
if k == 115: # s
display_json_file(folder_path, syn_json_time)
```
这样就可以实现按下 "s" 键后,根据 `syn_json_time` 的值显示对应的 json 文件。显示完毕后,可以继续按键控制,更新 `syn_json_time` 的值,然后再次调用这个函数,以显示新的 json 文件。
阅读全文