【问题标题】:opencv errors while using with windows form applications与 Windows 窗体应用程序一起使用时出现 opencv 错误
【发布时间】:2015-09-06 18:54:40
【问题描述】:

我正在将 opencv 与 Visual Studio 2010 Windows 窗体应用程序 C++ 一起使用。但它不允许调用内置函数。它给出了类似的错误

错误 1 ​​错误 C3861: 'cvCvtColor': 找不到标识符 c:\users\ayesha\documents\visual studio 2010\projects\abc\abc\Form1.h 140 1 abc

错误 2 错误 C3861: 'cvCvtPixToPlane': 找不到标识符 c:\users\ayesha\documents\visual studio 2010\projects\abc\abc\Form1.h 146 1 abc

我添加了以下标题

#include "highgui.h"
#include "opencv2/imgproc/imgproc.hpp" 
#include "opencv2/core/core.hpp"      
#include "opencv2/highgui/highgui.hpp"

谁能告诉我我做错了什么。

【问题讨论】:

  • 你用的是哪个OpenCV版本,可能真的不是你的版本。
  • 发布有关编译器错误的问题时,请包含complete 和unedited 错误日志。请编辑您的问题以包含它。
  • 并编辑了错误

标签: c++ visual-studio opencv


【解决方案1】:

很遗憾,OP 没有说明他使用的是什么版本的 OpenCV。

使用 OpenCV 3.0 时,请使用 cvSplit() 而不是 cvCvtPixToPlane()。

cvCvtColor() 应与 OpenCV 3.0 一起使用,前提是您将所需的头文件添加到您的项目中。

最后,为确保您不会遗漏项目中的任何必需文件,只需以 #include <opencv2\opencv.hpp> 开头代码即可。

【讨论】:

    【解决方案2】:

    cvCvtColor 是 OpenCV 的 C API 函数,但您打算使用 C++ 函数。您有两种解决问题的方法:

    1)(推荐)更改您的源代码以使用 C++ API。您应该使用cv::Mat 而不是CvArr、cv::cvtColor 而不是cvCvtColor 等。

    2) 由于源代码中的此类更改可能非常复杂,因此您仍然可以通过包含 C-headers 来使用 C API

    #include "opencv2/imgproc/imgproc_c.h" 
    #include "opencv2/core/core_c.h"      
    #include "opencv2/highgui/highgui_c.h"
    

    而不是 C++ (*.hpp) 的

    【讨论】:

    • ans 在第二个情况下它没有识别标题
    • 对我来说,这个解决了问题#include <opencv2/imgproc/imgproc.hpp>
    【解决方案3】:

    您提到的错误是我想的链接器错误。 当您包含两个标头 highgui.hpp 和 highgui.h 时,它们将指向一个相同的库,即 opencv_highgui23#。 只包含一个标题。

    【讨论】:

    • 您是否在项目配置中添加了 OpenCV 库?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多