代码问题汇总

来源:互联网 发布:淘宝技巧 编辑:程序博客网 时间:2024/06/05 16:58

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