linux下opencv
首先,先要再linux上安装opencv的库,在线安装的话,很容易 然后,编译的时候需要加上 `pkg-config opencv --libs --cflags opencv` 参数。
2. linux16.04怎么安装opencv
一、到Opecv-Release的Github项目上下载最新的Opencv版本,注意---基于python2.7,可选用 OpenCV2.3/2.4 以及 OpenCV3.X,我们选取版本3.3:
二、安装GUN GCC编译器,对于Ubuntu16.04版本的Linux操作系统这款编译器是自带的
三、安装Cmake跨平台编译工具(CMake 可以编译源代码、制作程序库、产生适配器(wrapper)、还可以用任意的顺序建构执行档)安装的方法:sudo apt-get install cmake
我已经安装好了,就提示无需更新,无需安装
四、安装python2.7,在ubuntu中一般来说是自带python2.7的,如果没有安装,请参看博客中其他的教程
五、安装numpy,在安装好python之后建议您安装pip,安装完pip之后就可以使用pip来安装各种各样的库了,pip install numpy
我已经安装好了,就提示无需更新,无需安装
六、安装pkg-config指令(注意,这里的安装很重要,例如libgtk2.0-dev软件包涉及到了opencv中的imshow等窗口调用能否使用的问题):
sudo apt-get install pkg-config libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
开始安装Opencv For Python:
1、找到下载的Opencv3.3的目录:
2、执行下面的指令(在执行指令的过程之前,我们可以切换到su超级权限下进行操作):
tar -xzvf opencv-3.3.0.tar.gz
cd opencv-3.3.0/
cd ..
mkdir my_build_dir
cd my_build_dir
cmake ../opencv-3.3.0 -DWITH_GTK_2_X=ON -DCMAKE_INSTALL_PREFIX=/usr/local
make # make -j4表示开4个线程来进行编译
make install
3. linux 怎么用opencv
预备
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
你就能看到图片了
4. linux 下 opencv程序怎么编译
运行了楼上给的命令之后,结果是这样的:
# g++ `pkg-config opencv --libs --cflags opencv` facedect.cpp -o facedect -static
/tmp/cc8XhRf6.o: In function `find_face(_IplImage*)':
facedect.cpp:(.text+0x51): undefined reference to `cvCreateImage'
facedect.cpp:(.text+0xc0): undefined reference to `cvCreateImage'
facedect.cpp:(.text+0xdd): undefined reference to `cvCvtColor'
facedect.cpp:(.text+0xf7): undefined reference to `cvResize'
facedect.cpp:(.text+0x109): undefined reference to `cvEqualizeHist'
facedect.cpp:(.text+0x116): undefined reference to `cvClearMemStorage'
facedect.cpp:(.text+0x188): undefined reference to `cvHaarDetectObjects'
facedect.cpp:(.text+0x1c6): undefined reference to `cvReleaseImage'
facedect.cpp:(.text+0x1d1): undefined reference to `cvReleaseImage'
/tmp/cc8XhRf6.o: In function `isperson(char const*)':
facedect.cpp:(.text+0x21e): undefined reference to `cvLoad'
facedect.cpp:(.text+0x22f): undefined reference to `cvCreateMemStorage'
facedect.cpp:(.text+0x25a): undefined reference to `cvLoadImage'
facedect.cpp:(.text+0x27d): undefined reference to `cvReleaseImage'
facedect.cpp:(.text+0x289): undefined reference to `cvDestroyWindow'
collect2: ld returned 1 exit status
5. 怎么安装opencv linux
OpenCV是一个基于开源发行的跨平台计算机视觉库,它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。在linux上安装opencv的方法如下:
工具:
Windows7、VMware Workstation 12 Pro、ubuntu-15.10、opencv-3.0.0.zip
步骤:
一、安装关联库
1、安装编译工具:sudo apt-get install build-essential
编译程序有了这个软件,它才知道头文件和库函数在哪,最后才形成一个开发环境。
6. linux下opencv怎么安装
通过网络获取安装:
# apt-get install libgtk2.0-dev
# apt-get install pkg-config
2、下载OpenCV ,文件名:OpenCV-2.4.3.tar.bz2,下载地址:
opencv.org.cn/index.php/Download
解压:
#tar jxvf OpenCV-2.4.3.tar.bz2
得到文件夹 OpenCV-2.4.3
这里新建一个文件夹OpenCV-x86作为PC编译目录。
7. 如何在linux下安装opencv
一、安装关联库
1
安装编译工具:
sudo apt-get install build-essential
编译程序有了这个软件,它才知道头文件和库函数在哪,最后才形成一个开发环境。
2
安装 cmake、git、pkg-config等辅助工具:
sudo apt-get install cmake git pkg-config libgtk2.0-dev libavcodec-dev libavformat-dev libswscale-dev
3
安装关联库:
sudo
apt-get install python-dev python-opencv python-numpy libtbb2
libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev
libdc1394-22-dev
END
二、编译OpenCV
1
从网上下载OpenCV-3.0.0.zip。
下载地址:
http://opencv.org/downloads.html
2
如果使用虚拟机,最好将OpenCV-3.0.0.zip移动到用户主目录下进行编译,一定不能在虚拟机在Windows系统里的共享文件夹下进行编译,否则会因为文件系统(Windows7的文件系统是NTFS,ubuntu-15.10的文件系统是)不同在编译过程中出错。鄙人在共享文件夹下进行编译,编译进行到%15时报错,我修复后又在编译进行到%21时报错,反正是各种错误,我是没有能力继续修复了......
3
最好将OpenCV-3.0.0.zip移动到用户主目录下进行编译:
mv [OpenCV-3.0.0.zip存放路径] ~/opencv_3.0.0.zip
unzip opencv_3.0.0.zip
cd opencv-3.0.0
mkdir release
cd release
4
CMake是一个跨平台的编译工具,想深入学习cmake命令的可以网络一下。
编译命令:
cmake
-D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D
WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D WITH_QT=ON
-D WITH_OPENGL=ON ..
5
make命令(-j表示用几个线程来编译,这样可以加快编译速度,不过这个与makefile的质量有关,有的工程用了-j会编译出错):
make -j $(nproc)
上述命令后一般大约要耗时1个小时,甚至更多,视个人电脑硬件配置而定。
执行完以后不要忘了make install:
sudo make install
6
如果编译过程出错后想要重新编译,把release目录下的CMakeCache.txt删除掉即可。
END
三、设置环境变量
1
添加库路径:
sudo /bin/bash -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf'
2
更新系统库:
sudo ldconfig
END
四、用cmake进行测试
1
DisplayImage.cpp中的源代码:
#include <stdio.h>
#include <opencv2/opencv.hpp>
using namespace cv;
int main(int argc, char** argv)
{
if ( argc != 2 )
{
printf("[usage]: %s <Image_Path>\n", argv[0]);
return -1;
}
Mat image;
image = imread( argv[1], 1 );
if ( !image.data )
{
printf("No image data!\n");
return -1;
}
namedWindow("Display Image", WINDOW_AUTOSIZE );
imshow("Display Image", image);
waitKey(0);
return 0;
}
2
CMakeLists.txt中的源代码:
cmake_minimum_required(VERSION 2.8)
project( DisplayImage )
find_package( OpenCV REQUIRED )
add_executable( DisplayImage DisplayImage.cpp )
target_link_libraries( DisplayImage ${OpenCV_LIBS} )
3
编译命令:
cmake .
make
运行命令:
./DisplayImage 01.jpg
END
五、用make进行测试
opencv_test.cpp中的源代码:
#include "cv.h"
#include "highgui.h"
#include <iostream>
using namespace std;
#define PICTURE "./01.jpg"
int main(void)
{
IplImage* img = cvLoadImage(PICTURE, 0);
cvNamedWindow( "test", 0 );
cvShowImage("test", img);
cvWaitKey(0);
cvReleaseImage( &img );
cvDestroyWindow( "test" );
return 0;
}
Makefile中的源代码:
CXX = g++
CFLAGS = -Wall
LDFLAGS = `pkg-config --cflags --libs opencv`
SRCS = $(wildcard *.cpp)
TARGETS = $(patsubst %.cpp, %, $(SRCS))
all:$(TARGETS)
$(TARGETS):$(SRCS)
$(CXX) -o $@ $< $(LDFLAGS) $(CFLAGS)
clean:
-rm -rf $(TARGETS) *~ .*swp
.PHONY: clean all
编译命令:
make
运行命令:
./opencv_test
代码写得比较简单,所以显示效果是一张黑白图片。
8. Linux下怎么配置python和opencv
以下说明在Linux下Python和OpenCV结合安装的过程,Python要使用OpenCV模块,则必须导入OpenCV提供的包,所以要提供Python支持,首先在安装OpenCV前安装必要的组件,一般列表如下:
1、gcc g++一般系统自带
2、cmake 编译OpenCV时使用,需要手动安装
3、pkg-config命令,一般系统自带,如果缺少,使用 yum -y install pkg-config 安装
4、Python 2.x,系统自带
5、NumPy 一个用于大型矩阵处理的库,这个必须!如果不安装则后面OpenCV安装后也编译不出来Python的模块,其他库可以后来安装
最后一步是安装OpenCV
在保证前4项没问题的情况下,开始安装NumPy模块,官网下载地址为:http://www.scipy.org/scipylib/download.html
进入SourceForge下载,地址为:https://sourceforge.net/projects/numpy/
直接点击Download即可下载,下载成功之后上传到Linux服务器,安装过程很简单,解压后直接安装即可(之前要确保python-devel已经安装)
unzip numpy-1.11.1.zip
cd numpy-1.11.1/
python setup.py install
另外numpy还可以去python官网下载:https://pypi.python.org/pypi/numpy
安装成功之后接下来进一步安装OpenCV,官方网站为:http://opencv.org/进入后点击DOWNLOADS来到下载界面:http://opencv.org/downloads.html,这里下载2.4.13的版本
下载完之后上传到Linux,执行接下来的安装:
unzip opencv-2.4.13.zip
cd opencv-2.4.13/
cmake -D WITH_GTK_2_X=ON -D CMAKE_INSTALL_PREFIX=/usr/local .
make # make -j4表示开4个线程来进行编译
make install
安装过程时间可能会有点长10~30分钟左右,编译完成之后OpenCV就安装到了指定的/usr/local下面的一些目录中,库文件就安装到了/usr/local/lib下,Python的模块安装位置是:/usr/local/lib/python2.7/site-packages,执行 ls /usr/local/lib/python2.7/site-packages/ 可以看到两个文件,一个是cv2.so一个是cv.py
这两个文件在刚才opencv-2.4.13编译的目录下面lib/下也存在着两个python模块文件,但是不幸的是现在并不能直接使用,原因是我们操作系统python依赖包的位置是/usr/lib/python2.7下,所以刚才如果编译到/usr下是直接可以用的,不过这个也不重要,只要我们将这两个文件复制到正确的目录下,那么就能正常使用OpenCV的功能了,执行: cp /usr/local/lib/python2.7/site-packages/cv* /usr/lib/python2.7/site-packages/ 复制过去之后进入python交互式界面执行 import cv2 没有报错则安装成功
可以写一个测试的小案例,在服务器上有一张图片是test.jpg现在简单的使用cv2模块解析成图像矩阵,然后再写入磁盘文件中,代码如下:
#!/usr/bin/python
# -*- coding:utf-8 -*-
import cv2
image = cv2.imread("test.jpg")
print image
cv2.imwrite("test1.jpg",image)
这里将原有的test.jpg生成test1.jpg,
执行 python cvtest.py 执行完后会发现输出好多矩阵变量,并且生成了test1.jpg文件
生成的文件有可能比原文件大也有可能小,具体根据图像来决定,现在查看一下图片内容,和之前是一样的
9. 如何在Linux下编译安装OpenCV
去opencv的linux安装版本,linux版本的opencv不同于windows版本的,里面没有已经编译好的各类库文件,需要使用cmake进行编译才能使用。在opencv的目录下执行cmake config对编译过程进行配置,然后执行cmake install 对opencv进行编译安装
10. linux怎么配置opencv
[cpp]view plain
sudoapt-getinstallbuild-essential
sudoapt-getinstallcmake
sudoapt-getinstalllibgtk2.0-dev
sudoapt-getinstallpkg-config
sudoapt-getinstallpython-devpython-numpy
sudoapt-getinstalllibavcodec-devlibavformat-devlibswscale-devlibjpeg-devlibpng-devlibtiff-devlibjasper-dev
make&&makeinstall
sudovim/etc/ld.so.conf.d/opencv.conf
- 最后一行添加
/usr/local/lib
sudoldconfig
- 现在打开另一个文件,添加环境变量:
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
exportPKG_CONFIG_PATH
cd~
vimhello.cpp
#include<stdio.h>
#include<opencv2/opencv.hpp>
usingnamespacecv;
intmain(intargc,char**argv)
{
if(argc!=2)
{
printf("usage:DisplayImage.out<Image_Path> ");
return-1;
}
Matimage;
image=imread(argv[1],1);
if(!image.data)
{
printf("Noimagedata ");
return-1;
}
namedWindow("DisplayImage",WINDOW_AUTOSIZE);
imshow("DisplayImage",image);
waitKey(0);
return0;
}
g++`pkg-config--cflagsopencv`-ohellohello.cpp`pkg-config--libsopencv`
./hellopsb1.jpg
root@iZ28gdz88j1Z:~#./hellopsb1.jpg
(DisplayImage:25620):Gtk-WARNING**:cannotopendisplay:
希望能够帮助到你
进入目录opencv-3.1.0,然后cmake生成makefile:
先把我的安装历史纪录给大家看下吧,大家也好心里有数
然后
[html]view plain
这下子代码插入了。
现在我们做的就是该怎么找到opencv库了:
首先打开这个文件,在最后一行添加一句话,当然它也可能是空的,没影响。
[html]view plain
[html]view plain
运行以下代码配置库:
[html]view plain
sudo gedit /etc/bash.bashrc
在这个文件的末尾添加下面两行:
[html]view plain
然后测试:
[html]view plain
[cpp]view plain
然后编译:
[html]view plain
然后运行:
[html]view plain
后面的psd是图片路径,由于我是在服务器上运行的,所以没办法显示出来,服务器默认是没有装Xwindow的,我装了,但是报了一堆错,就放弃了
[html]view plain