【问题标题】:opencv fisherface recognizeropencv 渔脸识别器
【发布时间】:2019-02-26 19:03:31
【问题描述】:

我正在尝试为 FisherFaceRecognizer 加载模型文件。最初的问题是该程序是为较旧的 OpenCV 版本编写的,并且似乎某些接口已更改。

关于我的项目的信息:

  • 编程语言:Python 3.5
  • OpenCV 版本:3.3.0

这是我遇到问题的两行:

      model = cv2.face.createFisherFaceRecognizer()
      model.load('foo_model.xml')

在 OpenCV 文档中,我发现有一种新方法可以调用创建函数,而且它似乎可以工作。但我找不到加载函数的正确调用。我曾尝试使用识别器的读取功能,但会导致错误。

        model = cv2.face.FisherFaceRecognizer_create()
        model.read('foo_model.xml')

我尝试使用 read() 时收到的错误消息:

无法打开文件进行阅读!在函数中读取

有人可以帮助我加载模型文件吗?谢谢你:)

【问题讨论】:

    标签: python-3.x opencv


    【解决方案1】:

    问题在于 xml 文件格式。如果您打开 XML 文件,您将找不到“my_object”标签。我不会详细介绍这个,但是,每次我遇到这个问题时,当我如下修改 xml 文件时它都会起作用。

         <?xml version="1.0"?>
             <opencv_storage>
                 <my_object> //add this 
                      .........
                      .........
                      .........
                 </my_object> //and this
            </opencv_storage>
    

    【讨论】:

      【解决方案2】:

      问题似乎是保存模型的 xml 格式已更改。这似乎是一个已知问题。我正在使用 OpenCV 3.3.0 并希望从较旧的 OpenCV 版本加载模型,这会导致读取函数出现上述错误。在 OpenCV 问答论坛中,有人向我建议了一个解决方案,但在我的情况下它不起作用。尽管如此,我还是会在 OpenCV Q&A here 上删除我的帖子的链接。也许有同样问题的其他人可以从中受益。

      【讨论】:

        猜你喜欢
        • 2018-08-07
        • 1970-01-01
        • 2015-07-05
        • 1970-01-01
        • 2018-09-15
        • 2019-08-10
        • 2011-02-20
        • 2017-02-26
        • 2017-02-03
        相关资源
        最近更新 更多