OpenCV中未声明“ Mat”

时间:2018-08-15 11:41:44

标签: c++ opencv libtiff

我按照本指南在Ubuntu上安装openCV: https://docs.opencv.org/master/d7/d9f/tutorial_linux_install.html

当我尝试执行以下程序时:

#include <opencv2/core/core.hpp>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <iostream> 
#include <math.h>
#include <tiffio.h>

using namespace std;

int main(){
  string imageName("images/400nm.tif");
  TIFF* tif = TIFFOpen(imageName.c_str(), "r");
  Mat image;


  return 0;
}

执行命令“ g ++ ssim.cpp -o ssim -ltiff”时出现以下错误:

  

ssim.cpp:在函数“ int main()”中:ssim.cpp:19:3:错误:“ Mat”为   未在此范围Mat图像中声明; ^ ~~ ssim.cpp:19:3:注意:   建议的替代方法:从   /usr/local/include/opencv2/core.hpp:59:0,                    来自/usr/local/include/opencv2/core/core.hpp:48,                    来自ssim.cpp:2:/usr/local/include/opencv2/core/mat.hpp:771:18:注意:“ cv :: Mat”   CV_EXPORTS类Mat

有人知道我为什么得到这个以及如何解决吗? 我是opencv和libtiff的新手,所以我不知道该怎么做...

2 个答案:

答案 0 :(得分:0)

使用命令:

  

g ++ ssim.cpp -o ssim -ltiff -lopencv_core -lopencv_highgui -lopencv_imgproc -lopencv_imgcodecs

我没有得到编译器错误,但是当我尝试执行命令./ssim时,我得到了:

  

./ ssim:加载共享库时出错:libopencv_core.so.3.4:无法打开共享库文件:没有这样的文件或目录

答案 1 :(得分:0)

从源代码构建openCV并不是真正必要的。尝试使用

安装
sudo apt-get install libopencv-dev

,然后尝试再次编译。

也要像您在评论中所说的那样,确保使用命名空间cv或cv :: Mat。