运行OpenCV双目深度估计算法时无法读取stereo_rectify_maps.xml文件求助
解决OpenCV无法读取
data/stereo_rectify_maps.xml的问题 问题重现
运行双目深度估计代码时,出现文件读取错误:
[ERROR:0@1.008] global /Users/runner/work/opencv-python/opencv-python/opencv/modules/core/src/persistence.cpp (505) open Can't open file: 'data/stereo_rectify_maps.xml' in read mode
使用的代码片段:
import numpy as np import cv2 # Check for left and right camera IDs # These values can change depending on the system CamL_id = 2 # Camera ID for left camera CamR_id = 1 # Camera ID for right camera CamL= cv2.VideoCapture(CamL_id) CamR= cv2.VideoCapture(CamR_id) # Reading the mapping values for stereo image rectification cv_file = cv2.FileStorage("data/stereo_rectify_maps.xml", cv2.FILE_STORAGE_READ) Left_Stereo_Map_x = cv_file.getNode("Left_Stereo_Map_x").mat() Left_Stereo_Map_y = cv_file.getNode("Left_Stereo_Map_y").mat() Right_Stereo_Map_x = cv_file.getNode("Right_Stereo_Map_x").mat() Right_Stereo_Map_y = cv_file.getNode("Right_Stereo_Map_y").mat() cv_file.release()
解决步骤
验证工作目录与文件路径
在代码开头添加以下代码,打印当前Python脚本的工作目录:import os print("当前工作目录:", os.getcwd())确认
data/stereo_rectify_maps.xml是否存在于该目录下。如果文件在其他路径,要么将文件移动到当前工作目录的data子文件夹,要么直接使用绝对路径替换相对路径,例如:cv_file = cv2.FileStorage("/Users/你的用户名/项目根目录/data/stereo_rectify_maps.xml", cv2.FILE_STORAGE_READ)检查文件存在性与权限
- 手动前往路径确认文件是否存在,注意MacOS区分文件名大小写(如
Data与data是不同文件夹),检查是否存在拼写错误。 - 若文件存在但无法读取,在终端执行以下命令赋予读取权限:
chmod +r /path/to/data/stereo_rectify_maps.xml
- 手动前往路径确认文件是否存在,注意MacOS区分文件名大小写(如
确认文件已正确生成
stereo_rectify_maps.xml是双目相机标定步骤的产物,若你跳过了教程中的标定环节,自然不会有这个文件。需先完成教程中的相机标定流程,生成映射文件后再运行当前代码。若已生成,检查标定代码的输出路径是否与当前代码的读取路径一致。
内容的提问来源于stack exchange,提问作者Fox
相关产品推荐
相关产品推荐

