我设法在openCV网站上运行示例,在eclipse中显示图像(http://docs.opencv.org/doc/tutorials/introduction/linux_eclipse/linux_eclipse.html)
我有另一个项目,其中我从mat文件中读取了一些矩阵,当我尝试合并这两个时,为了显示从mat文件中读取的图像,显示了以下错误:
19:09:59 **** Incremental Build of configuration Debug for project testMAT ****
make all
Building file: ../src/testMAT.cpp
Invoking: GCC C++ Compiler
g++ -I/usr/local/MATLAB/R2014b/extern/include -I/usr/include/opencv -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"src/testMAT.d" -MT"src/testMAT.d" -o "src/testMAT.o" "../src/testMAT.cpp"
../src/testMAT.cpp: In function ‘int diagnose(const char*, const char*)’:
../src/testMAT.cpp:70:43: warning: format ‘%u’ expects argument of type ‘unsigned int’, but argument 2 has type ‘long unsigned int’ [-Wformat=]
printf("the size of c is %u\n", sizeof c);
^
../src/testMAT.cpp:78:10: warning: unused variable ‘mrows’ [-Wunused-variable]
mwSize mrows = mxGetM(fPtr);
^
../src/testMAT.cpp:79:10: warning: unused variable ‘ncols’ [-Wunused-variable]
mwSize ncols = mxGetN(fPtr);
^
../src/testMAT.cpp:38:16: warning: unused variable ‘dir’ [-Wunused-variable]
const char **dir;
^
../src/testMAT.cpp:39:22: warning: unused variable ‘nome’ [-Wunused-variable]
const char *name, *nome;
^
../src/testMAT.cpp:40:9: warning: unused variable ‘ndir’ [-Wunused-variable]
int ndir;
^
../src/testMAT.cpp:41:9: warning: unused variable ‘i’ [-Wunused-variable]
int i;
^
../src/testMAT.cpp:57:10: warning: variable ‘nElements’ set but not used [-Wunused-but-set-variable]
mwSize nElements; /* number of elements in array */
^
../src/testMAT.cpp:60:11: warning: unused variable ‘realPtr’ [-Wunused-variable]
double *realPtr; /* pointer to data */
^
../src/testMAT.cpp:61:10: warning: variable ‘total’ set but not used [-Wunused-but-set-variable]
double total; /* value to calculate */
^
Finished building: ../src/testMAT.cpp
**Building target: testMAT
Invoking: GCC C++ Linker
g++ -Wl,-rpath,/usr/local/MATLAB/R2014b/bin/glnxa64 -L/usr/local/MATLAB/R2014b/bin/glnxa64 -L/usr/lib/x86_64-linux-gnu -o "testMAT" ./src/testMAT.o -leng -lmat -lmex -lut -lmx -lopencv_core -lopencv_imgproc -lopencv_highgui
/usr/lib/x86_64-linux-gnu/libopencv_highgui.so: undefined reference to `TIFFReadRGBAStrip@LIBTIFF_4.0'
/usr/lib/x86_64-linux-gnu/libopencv_highgui.so: undefined reference to `TIFFIsTiled@LIBTIFF_4.0'
/usr/lib/x86_64-linux-gnu/libopencv_highgui.so: undefined reference to `TIFFWriteScanline@LIBTIFF_4.0'
/usr/lib/x86_64-linux-gnu/libopencv_highgui.so: undefined reference to `TIFFGetField@LIBTIFF_4.0'
/usr/lib/x86_64-linux-gnu/libopencv_highgui.so: undefined reference to `TIFFScanlineSize@LIBTIFF_4.0'
/usr/lib/x86_64-linux-gnu/libopencv_highgui.so: undefined reference to `TIFFReadEncodedTile@LIBTIFF_4.0'
/usr/lib/x86_64-linux-gnu/libopencv_highgui.so: undefined reference to `TIFFReadRGBATile@LIBTIFF_4.0'
/usr/lib/x86_64-linux-gnu/libopencv_highgui.so: undefined reference to `TIFFClose@LIBTIFF_4.0'
/usr/lib/x86_64-linux-gnu/libopencv_highgui.so: undefined reference to `TIFFRGBAImageOK@LIBTIFF_4.0'
makefile:45: recipe for target 'testMAT' failed
/usr/lib/x86_64-linux-gnu/libopencv_highgui.so: undefined reference to `TIFFOpen@LIBTIFF_4.0'
/usr/lib/x86_64-linux-gnu/libopencv_highgui.so: undefined reference to `TIFFReadEncodedStrip@LIBTIFF_4.0'
/usr/lib/x86_64-linux-gnu/libopencv_highgui.so: undefined reference to `TIFFSetField@LIBTIFF_4.0'
/usr/lib/x86_64-linux-gnu/libopencv_highgui.so: undefined reference to `TIFFSetWarningHandler@LIBTIFF_4.0'
/usr/lib/x86_64-linux-gnu/libopencv_highgui.so: undefined reference to `TIFFSetErrorHandler@LIBTIFF_4.0'
collect2: error: ld returned 1 exit status
make: *** [testMAT] Error 1 **
19:10:00 Build Finished (took 810ms)
这个错误甚至在opencv示例中显示,当我只添加-Wl,-rpath,/ usr / local / MATLAB / R2014b / bin / glnxa64时,不向源文件添加任何代码。 没有旗帜,一切正常。
如何在这个opencv项目中包含matlab代码?
答案 0 :(得分:0)
这个话题很老但我遇到了同样的问题,我修好了。
我尝试重新安装OpenCV,最后我发现ccmake
BUILD_TIFF | OFF
是安装OpenCV时的defaut参数。
所以我把它打开并重新安装OpenCV,它的工作原理。