我正在尝试为FisherFaceRecognizer加载模型文件。最初的问题是该程序是为较旧的OpenCV版本编写的,似乎有些接口已经改变。
关于我的项目的信息:
这两行是我遇到的问题:
model = cv2.face.createFisherFaceRecognizer()
model.load('foo_model.xml')
在OpenCV文档中,我发现有一种新的方法来调用create函数,它似乎有效。但我找不到正确的加载功能调用。我试图使用识别器的读取功能,但这会导致错误。
model = cv2.face.FisherFaceRecognizer_create()
model.read('foo_model.xml')
我尝试使用read()时收到的错误消息:
无法打开文件进行阅读!在函数读取
有人可以帮我加载模型文件吗?谢谢:))
答案 0 :(得分:0)
问题似乎是保存模型的xml格式已被更改。这似乎是一个已知问题。我正在使用OpenCV 3.3.0并希望从较旧的OpenCV版本加载模型,这会导致读取函数中提到的错误。在OpenCV Q& A论坛中,向我建议了一个解决方案,但在我的情况下它没有用。尽管如此,我仍会将链接发送到OpenCV Q& A here的帖子。也许有同样问题的其他人可以从中受益。
答案 1 :(得分:0)
问题出在xml文件格式上。如果打开XML文件,将找不到“ my_object”标签。我将不进行详细介绍,但是,每次遇到此问题时,按如下所示修改xml文件时都可以使用。
<?xml version="1.0"?>
<opencv_storage>
<my_object> //add this
.........
.........
.........
</my_object> //and this
</opencv_storage>