在OpenCV中加载haar级联文件 -> “OpenCV返回NULL”

3 投票
2 回答
5282 浏览
提问于 2025-04-16 07:26

这是关于OpenCV 2.1和Python 2.6的内容:

>>> cv.Load('~/Desktop/data/haarcascades/haarcascade_eye.xml')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: OpenCV returned NULL

有人能解释一下这个问题吗?在OS X和Ubuntu系统上都会出现这个错误。每个文件都会出现同样的错误。我记得在2.0版本的时候是可以正常工作的。

补充一下——我觉得这个问题有时候会出现,有时候又不会。

>>> cv.Load('/Users/rob/Downloads/OpenCV-2.1.0/data/haarcascades/haarcascade_frontalface_alt.xml')
<HaarClassifierCascade 0x1003a3a40>
>>> cv.Load('/opt/local/var/macports/software/opencv/2.1.0_0/opt/local/share/opencv/haarcascade_frontalface_alt.xml')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: OpenCV returned NULL

2 个回答

0

cv.Load() 换成 cv.CascadeClassifier() 然后试试看

1

看起来文件路径没有正确解析(比如说 ~/...),但具体情况不是很清楚。

建议你使用操作系统的包来找到基础路径,然后用 os.path 的函数来组合,得到完整的路径名。

撰写回答