linux 怎么用opencv

 我来答
硪丨暧恋
2017-04-26 · TA获得超过8980个赞
知道大有可为答主
回答量:5336
采纳率:93%
帮助的人:2191万
展开全部
预备

GCC
CMake
OpenCV

这些都可以在CentOS 6.0的“添加/删除软件”里面找到并安装。其他Linux版本可以选择用编译后安装或者在Rpmfind寻找二进制安装版本:

http://rpmfind.net/

CentOS安装OpenCV 2.4+

下载OpenCV 2.4+压缩包解压到一个文件夹里,如:/home/me/opencv/
构建Makefile,在终端输入,进行构建:

cd /home/me/opencv/

cmake .

进行编译并安装,编译过程可能有些警告发生,请无视这些警告:

make

make check

make install

写一个OpenCV程序

新建一个简单的程序,例如:DisplayImage.cpp。

#include <stdio.h>
#include <cv.h>
#include <highgui.h>

//使用cv这个命名空间
using namespace cv;

/* 主函数
*C语言规定main函数只能有两个参数,
*习惯上将这两个参数写成argc和argv。
*第一个代表(传参个数+1),
*第二个代表传惨数据。
*一般有两种写法:
*main( int argc, char* argv[])
*main( int argc, char** argv)
*/
int main( int argc, char** argv )
{
//建立一个Mat类型的变量image
Mat image;
/* API中有:
* C++: Mat imread(const string& filename, int flags=1 )
* 意思是返回Mat类型数据,第一个参数接受一个string类型的引用,
* 第二个参数接受一个int类型的flags,一般都是1。
*/
image = imread( argv[1], 1 );

//当传的参数不是一个,或者图片没有数据则提示没有图片并退出程序
if( argc != 2 || !image.data )
{
printf( "没有该图片 \n" );
return -1;
}

//C++: void namedWindow(const string& winname, int flags=CV_WINDOW_AUTOSIZE )
namedWindow( "显示图片", CV_WINDOW_AUTOSIZE );
//C++: void imshow(const string& winname, InputArray mat)
imshow( "显示图片", image );
//C++: int waitKey(int delay=0)
waitKey(0);

return 0;
}

新的头文件写法

同样的程序,可以用新的头文件写法来写:

#include "opencv2/core/core.hpp"

#include "opencv2/highgui/highgui.hpp"

#include <stdio.h>

using namespace cv;

int main( int argc, char** argv ){
Mat image;
image = imread( argv[1]);

if( argc != 2 || !image.data ){
printf("没有图片\n");
return -1;
}

namedWindow( "显示图片", CV_WINDOW_AUTOSIZE );
imshow( "显示图片", image );
waitKey(0);

return 0;
}

创建一个对应的CMake文件

新建一个CMakeLists.txt,内容大概是这样的:

project( DisplayImage )
find_package( OpenCV REQUIRED )
add_executable( DisplayImage DisplayImage )
target_link_libraries( DisplayImage ${OpenCV_LIBS} )

生成可执行文件

cd <DisplayImage_directory>
cmake .
make

结果

生成了一个DisplayImage文件,所以运行这个文件,将文件路径传进去:

./DisplayImage lena.jpg

你就能看到图片了
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式