Q1:
ubuntu opencv 读取图片数据为空!
工程文件夹的结构:src文件夹放源文件,bin文件夹放生成的可执行文件,data文件夹放需要的图片。
源文件中的部分代码:
srcImg = imread("./data/hello.jpg");
imshow("",srcImg);
经过cmake编译通过后,进入bin目录,输入如下命令来运行可执行文件
./hello
报错!
OpenCV Error: Assertion failed (size.width>0 && size.height>0) in cv::imshow, file ..\..\..\..\opencv\modules\highgui\src\window.cpp, line 26
A1:
原因就是工程目录和执行文件时当前目录之间的关系没有理清楚。
总之要保证合适的路径,能够正确读取图片。
所以有两种方法:
1.源文件不变,回到工程目录,运行bin/hello
2.改动源文件为:srcImg = imread("../data/hello.jpg");
,然后在bin目录下,运行bin/hello
3.读取数据时采用绝对路径
Q2:
Ubuntu下安装多个版本的OpenCV,使用CMAKE可以进行管理;
比如,2.4.11默认安装在路径:
/usr/local/include
/usr/local/lib
/usr/local/bin
/usr/local/share
A2:
然后安装3.2.0,其中cmake ..时要选择自己的安装路径:
cmake -D CMAKE_BUILD_TYPE=RELEASE -D WITH_TBB=ON -D WITH_V4L=ON -D CMAKE_INSTALL_PREFIX= /home/fqy/dependency/opencv320 ..
一般情况下,只有一个版本的OpenCV,在工程的CMakelists.txt中:
find_package( OpenCV )
在本文的多版本情况下,想要使用3.2.0,在工程的CMakelists.txt中加上一句:
set(CMAKE_PREFIX_PATH "/home/fqy/dependency/opencv320/")
find_package( OpenCV )
参考链接:
ubuntu 安装使用多版本opencv