gpt4 book ai didi

python - 从 Python 模块内的 sys.path 中的路径读取图像

转载 作者:行者123 更新时间:2023-12-02 16:55:36 24 4
gpt4 key购买 nike

我对 python 和 opencv 世界很陌生。我只是想阅读并显示图像,但总是出现错误:

error: D:\Build\OpenCV\opencv-3.1.0\modules\highgui\src\window.cpp:289: error: (-215) size.width>0 && size.height>0 in function cv::imshow



我创建了一个名为 test.py 的模块。在该模块中,我尝试读取图像 "汽车.png"这是在我的系统路径 "C:\cv\images"并显示如下:
import cv2;
import sys;


sys.path.append('C:\\cv\\images');

im = cv2.imread('car.png');
cv2.imshow('Car Figure',im);
cv2.waitKey(0);

当我调试代码时,我可以看到 im 变量从未初始化,这就是我得到该错误代码的原因。但是,当我在解释器中键入 sys.path 时,它显示该路径已经被添加了很多次,我试图运行我的模块。当我直接在解释器中复制/粘贴模块内容时,代码工作正常并且图像出现。

似乎在模块内部,没有考虑 sys.path 并且 python 无法读取图像。

知道这是否是正常行为,还是我应该在模块内做一些事情让解释器读取 sys.path 内容?

最佳答案

是什么让你想到 sys.path设置会影响您从中读取文件的目录吗?它纯粹用于定位要导入的 Python 模块。因此,要回答您的问题,您所看到的行为是正常的和预期的。如果您在 dir 中有目录和 filename 中的文件名那么您应该打开的文件将是

os.path.join(dir, filename)

所以你应该试试
im = cv2.imread(os.path.join(dir, filename))

那些对使用 Python 包传送数据文件感兴趣的人可能比查看 pkgutil 的文档做得更糟。包裹。特别是, pkgutil.get_data 对于在安装过程中放置​​数据文件的任何位置查找数据文件非常有用。

关于python - 从 Python 模块内的 sys.path 中的路径读取图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38700617/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com