我按照本指南在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的新手,所以我不知道该怎么做...
答案 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。