【问题标题】:openCV 2.4.9 windows: InputArray is undefinedopenCV 2.4.9 窗口:InputArray 未定义
【发布时间】:2014-05-30 06:11:36
【问题描述】:

我正在尝试创建一个用于在 labview 中使用 openCV 的 dll 包装器。我对他们两个也很陌生(openCV 和 Labview)。我想使用来自 labview 的 cvTriangulatePoints。现在我已经创建了一个 hpp 文件

#ifndef __OPENCV_PRECOMP_H__
#define __OPENCV_PRECOMP_H__

#include "cvconfig.h"

#include "opencv2/calib3d/calib3d.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/imgproc/imgproc_c.h"
#include "opencv2/core/internal.hpp"
#include "opencv2/features2d/features2d.hpp"
#include <vector>

#ifdef HAVE_TEGRA_OPTIMIZATION
#include "opencv2/calib3d/calib3d_tegra.hpp"
#else
#define GET_OPTIMIZED(func) (func)
#endif

#endif

(这是precomp.hpp,它包含在文件triangulate.cpp opencv\sources\modules\calib3d\src中)然后是我自己的hpp文件:

#ifdef WRAPPEROPENCV_EXPORTS
#define WRAPPEROPENCV_API __declspec(dllexport) 
#else
#define WRAPPEROPENCV __declspec(dllimport) 
#endif

#include "precomp.hpp"

namespace WrapperOpenCv
{
     class WrapperOpenCv
     {
         public: 
            WRAPPEROPENCV_API void cvTriangulatePoints(CvMat* projMatr1, CvMat*      projMatr2, CvMat* projPoints1, CvMat* projPoints2, CvMat* points4D);
            WRAPPEROPENCV_API void cvCorrectMatches(CvMat *F_, CvMat *points1_, CvMat *points2_, CvMat *new_points1, CvMat *new_points2);
            static WRAPPEROPENCV_API void triangulatePoints( InputArray _projMatr1, InputArray _projMatr2, InputArray _projPoints1, InputArray _projPoints2,  OutputArray _points4D )
    };
}

有了这个我应该能够在labview中导出这些方法。(我知道我仍然必须在cpp文件中实现这些功能)。问题:我在 InputArray 和 OutputArray 上有一个错误:

Error: identifier "InputArray" is undefined

有人知道我应该怎么做才能解决这个问题吗?感谢您的帮助

【问题讨论】:

  • 请阅读 this paragraph 上 OpenCV 中使用的输入/输出数组,然后相应地更改您的方法。
  • 您可能需要包含一些来自核心模块的头文件,例如 mat.hpp 等。尝试包含它们,然后再试一次。
  • @scap3y 是对的,文档说 通常,您不应该关心那些中间类型(并且您不应该显式声明这些类型的变量) 并使用其他数据类型. _projMatr1 和 _projmatr2 是我通过运行 opencv 示例中的程序“stereoCalib.exe”获得的一些矩阵:
  • 其实opencv的sample文件夹里只有源码stereo_calib.cpp,需要自己编译。但是现在我的问题是如何使用stereo_calib生成的yml文件中的值。我应该为此创建另一个问题吗?

标签: c++ opencv


【解决方案1】:

问题是命名空间:

cv::InputArray

...
using namespace cv;
namespace WrapperOpenCv
{
...

一切正常

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-01
    • 1970-01-01
    • 2021-10-06
    • 2019-06-03
    • 2021-01-15
    • 2019-10-12
    • 2013-08-07
    • 1970-01-01
    相关资源
    最近更新 更多