cv2.imwrite 没有给出图像输出
cv2.imwrite not giving image output
我目前正在远程实习,我必须使用 D3.JS 编写一个可视化工具,但这不是我遇到问题的部分。
为了解决这个问题,我得到了一些名为 episodes 的文件,其中包含有关机器人路径的数据,如果他成功或失败以及笛卡尔坐标中的不同点。
(顺便说一句,我是法国人,如果有语法问题,我提前道歉)
所以我得到了一个小的 Python 程序来解释这些 .p 文件中包含的这些数据,这是代码:
import pickle
import matplotlib.pyplot as plt #PyQT is require or tkinter
import numpy as np
import cv2
#This script aligns the true position to position given by orbslam.
#Load episode with id. #This loads the dictionary containing all information about an episode.
trajectory_dir = "ORBSlam/"
episode_id = 0
episode = pickle.load(open( trajectory_dir+"episodeStats"+str(episode_id)+".p", "rb" ))
#Extract useful data from the dictionary
pose_env = episode["pose_env"]
images_RGB = episode["rgb"]
images_depth = episode["depth"]
actions_orb = episode["orb_action"]
actions_best = episode["best_action"]
goal_distances = episode["goal_distance"]
success = episode["success"]
#Save observations into images.
for i in range(len(images_RGB)):
cv2.imwrite( trajectory_dir+"RGBs"+str(episode_id)+"/"+str(i)+".png", images_RGB[i] )
cv2.imwrite( trajectory_dir+"Depths"+str(episode_id)+"/"+str(i)+".png", images_depth[i]*255 )
#Display 2D trajectories.
x_env = []
y_env = []
for i in range(len(pose_env)):
#add x,y coordinates of the translation
x_env.append(pose_env[i][0,3])
y_env.append(pose_env[i][2,3])
plt.plot(x_env,y_env)
plt.axis('equal')
plt.show()
这里的问题是,在应该输出png图像的循环中,实际上文件夹中没有输出,因为它是一个静默函数我不知道错误是什么,我创建了两个文件夹在 ORBLam 文件夹(RGB 和深度)中,所以您认为它与写入权限或类似权限有关吗? (我在 macOS 上工作)
提前感谢所有回复。
编辑:我发现为什么我没有输出图像,我只是忘记在 Depths 和 RGBs 文件夹中创建一个名称为 episode_id
(基本上是 0,1,2,...)的文件夹,我的坏事是个愚蠢的错误
已解决:缺少获取输出的文件夹
我目前正在远程实习,我必须使用 D3.JS 编写一个可视化工具,但这不是我遇到问题的部分。 为了解决这个问题,我得到了一些名为 episodes 的文件,其中包含有关机器人路径的数据,如果他成功或失败以及笛卡尔坐标中的不同点。 (顺便说一句,我是法国人,如果有语法问题,我提前道歉) 所以我得到了一个小的 Python 程序来解释这些 .p 文件中包含的这些数据,这是代码:
import pickle
import matplotlib.pyplot as plt #PyQT is require or tkinter
import numpy as np
import cv2
#This script aligns the true position to position given by orbslam.
#Load episode with id. #This loads the dictionary containing all information about an episode.
trajectory_dir = "ORBSlam/"
episode_id = 0
episode = pickle.load(open( trajectory_dir+"episodeStats"+str(episode_id)+".p", "rb" ))
#Extract useful data from the dictionary
pose_env = episode["pose_env"]
images_RGB = episode["rgb"]
images_depth = episode["depth"]
actions_orb = episode["orb_action"]
actions_best = episode["best_action"]
goal_distances = episode["goal_distance"]
success = episode["success"]
#Save observations into images.
for i in range(len(images_RGB)):
cv2.imwrite( trajectory_dir+"RGBs"+str(episode_id)+"/"+str(i)+".png", images_RGB[i] )
cv2.imwrite( trajectory_dir+"Depths"+str(episode_id)+"/"+str(i)+".png", images_depth[i]*255 )
#Display 2D trajectories.
x_env = []
y_env = []
for i in range(len(pose_env)):
#add x,y coordinates of the translation
x_env.append(pose_env[i][0,3])
y_env.append(pose_env[i][2,3])
plt.plot(x_env,y_env)
plt.axis('equal')
plt.show()
这里的问题是,在应该输出png图像的循环中,实际上文件夹中没有输出,因为它是一个静默函数我不知道错误是什么,我创建了两个文件夹在 ORBLam 文件夹(RGB 和深度)中,所以您认为它与写入权限或类似权限有关吗? (我在 macOS 上工作)
提前感谢所有回复。
编辑:我发现为什么我没有输出图像,我只是忘记在 Depths 和 RGBs 文件夹中创建一个名称为 episode_id
(基本上是 0,1,2,...)的文件夹,我的坏事是个愚蠢的错误
已解决:缺少获取输出的文件夹