c++ openCV 3.1 - 不能像教程中那样使用 Mat 或大多数 openCV 东西

标签 c++ opencv opencv3.0

最佳

我正在尝试用 C++ 创建一个项目,该项目大部分时间都在 打开简历库

因此,我在我的 windows 机器上安装了 open-cv3.1.0 并连接了 libraryinclude map /文件到我的 netbeans c++ 项目。


成功

总的来说,我认为我已经成功地做到了这一点,因为 当我编译/运行包含下一段代码的应用程序时,我没有收到任何错误。

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
using namespace cv;

++ 我可以读入图像并将其可视化:)

CvMat *img = cvLoadImageM(location.c_str(),CV_LOAD_IMAGE_GRAYSCALE);
cvNamedWindow( "My Window", 1 );
cvShowImage( "My Window", img );
cvWaitKey();

问题

但是我一上随机教程。例如

// create a big 8Mb matrix
Mat A(1000, 1000, CV_64F);

http://docs.opencv.org/3.0-last-rst/modules/core/doc/intro.html

甚至

Mat A;

然后我立即得到一个编译错误:

g++     -o dist/Debug/Cygwin-Windows/ai4 build/Debug/Cygwin-Windows/PrincipalComponentAnalysis.o build/Debug/Cygwin-Windows/ReadInImage.o build/Debug/Cygwin-Windows/main.o -L../../../netbeans/OpenCV/opencv/build/x64/vc14/bin -lopencv_world310 -lopencv_world310d
build/Debug/Cygwin-Windows/PrincipalComponentAnalysis.o: In function `cv::Mat::~Mat()':
/cygdrive/d/fun/ai/ai4/../../../netbeans/OpenCV/opencv/build/include/opencv2/core/mat.inl.hpp:571: undefined reference to `cv::fastFree(void*)'
...

唯一不会给我错误的是:

CvMat A;
CvMat *B;
IplImage *C;
IplImage D;

这是因为大多数(所有)教程和 stackoverflow 问题都使用 Mat Acv::Mat A 版本。


问题

因此问题来了:你有没有遇到过同样的问题?你愿意帮助我吗? + 我该如何解决。


编辑:配置步骤 - OpenCV 3.1

工具 --> 选项 --> c/c++ --> 代码帮助:

  • D:\netbeans\openCV\opencv\build\include
  • D:\netbeans\openCV\opencv\build\include\opencv2

R-click Project --> Properties --> build --> C++ Compiler --> include directories

  • ../../../netbeans/OpenCV/opencv/build/include
  • ../../../netbeans/OpenCV/opencv/build/include/opencv2

R-click Project --> Properties --> build --> linker --> Additional Library Directories

  • ../../../netbeans/OpenCV/opencv/build/x64/vc14/bin

R-click Project --> Properties --> build --> linker --> Libraries --> Add Labrary

  • opencv_world310
  • opencv_world310d

解决方案

  1. 下载CMake
  2. 下载OpenCV
  3. 下载 MinGW <-- 使用它作为编译器而不是 cygwin
  4. 安装MinGW
  5. 点击此链接 --> http://eyalarubas.com/opencv-installation-on-windows-netbeans-mingw.html

最佳答案

您正在使用 cygwin 进行编译并链接到 VC14 库。

那是你的错误。 VC14 用于 MSVC14(Visual Studio 编译器),您需要自己编译 OpenCV 才能使用 cygwin。 OpenCV 不附带其他预建库。

网上有多个教程介绍如何操作,但实际上您需要使用 cmake 才能为您的特定工具链编译 OpenCV。

关于c++ openCV 3.1 - 不能像教程中那样使用 Mat 或大多数 openCV 东西,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34724768/

相关文章:

c++ - break声明的可信度

c++ - 双与位运算的算术

c++ - 我应该使用什么而不是 void 作为变体中的替代类型之一?

c++ - opencv中acos函数错误

opencv - 视频中的帧速率不正确

python - python中的OpenCV轮廓最小尺寸位置

c++ - 使用 Code::Blocks 在 C++ 中编译 Glew 和 SDL

python - 麻烦与代码-> Python识别报纸上的面孔

python - 我想通过使用网络摄像头将捕获图像添加到我的 PyQt gui 窗口中,网络摄像头图像将出现在 gui 窗口上

compiler-errors - 如何从opencv gpumat创建推力device_vector