问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

怎么安装opencv linux

发布网友 发布时间:2022-04-21 18:11

我来回答

1个回答

热心网友 时间:2022-04-12 11:25

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

编译程序有了这个软件,它才知道头文件和库函数在哪,最后才形成一个开发环境。

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

二、编译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删除掉即可。

三、设置环境变量

1、添加库路径:sudo /bin/bash -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf'

2、更新系统库:sudo ldconfig

四、用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

五、用make进行测试

1、opencv_test.cpp中的源代码:

#include "cv.h"
#include "highgui.h"
#include <iostream>
using namespace std;
#definePICTURE"./01.jpg"

int main(void)
{
    IplImage* img = cvLoadImage(PICTURE, 0);
    cvNamedWindow( "test", 0 );
    cvShowImage("test", img);
    cvWaitKey(0);
    cvReleaseImage( &img );
    cvDestroyWindow( "test" );
    return 0;
}

2、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

代码写得比较简单,所以显示效果是一张黑白图片。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
iOS 16.1.1值得更新升级吗 ios16.1.1正式版建议更新吗 iOS 16.1.1修复了哪些问题 ios16.1.1值得更新吗?ios 16.1.1新增内容及更新建议 iPhone 12升级iOS 16.1.1之后好用吗 iOS 16.1.1更新内容介绍 iOS 16.1正式版新增了哪些新功能?iOS 16.1正式版值得升级吗? ios 16.1正式版解决了哪些问题和BUG ...森先生是他“最好的老师” 你喜欢这样的老师吗? ... 你喜欢怀特森这样老师吗?说说你的看法.250字 python怎么安装opencv windows下怎么安装opencv 美国的电子邮件地址格式是怎样的? 26岁小伙娶了58岁老太太,18年后老太却哭着求离婚... 电子邮件地址的书写格式 60岁老太家产全给儿子,在女儿家养老,儿子:这是... 电子邮件的地址格式是什么? 怎样泡到80岁的老太婆? 老太婆为什么念经 电子邮件地址格式 奶奶这没钱讨嫌的农村老太婆,还有脸要求我,自己... 电子邮件地址的一般格式为_______。 61岁老太爱上18岁小伙,结果被男友用照片敲诈40万... 怎么会有这么坏的老太太,一天骂我几回我真的我看... 刚碰到两个老太太对我说学校带红领巾有灾难是什么意思 电子邮件地址的一般格式为______。 66岁老太宁可坐牢也要杀夫,被虐的这五十年里,她... 遇见这么个老太太,我该怎么办? 我们家楼下几个老太婆聊天乘风凉很吵 和他们讲了也... 当年因忘年恋走红,66岁老太为了挽留丈夫做试管婴... 怎么设置路由器带路由器怎么设置 win7安装opencv安装失败, 下面是我的安装过程 怎样设置一个路由器带多个无线路由器 网络问题;可以用一个路由器下面再带一个无线路由... 如何在windows 7下安装opencv-2.4.8 怎么安装opencv 在ubuntu 路由器可以带路由器吗? windows python 怎么安装opencv 无线路由器能在带另一个无线路由器吗 我的电脑用路由器上的网,能在安装一个无线路由器吗 如何在win10上安装opencv 路由器带路由器的网络怎么设置?邻居两家共用一条... 路由器带路由器多了第一个就怎么用不了了 如何在python安装opencv 问什么我进QQ空间点小纸条老是服务器繁忙无法提取? 我用有线路由器带个无线路由器做2级路由 、我用2级... QQ空间的小纸条一直打不开,打开老说是服务器忙,... 用路由器连接带路由功能的猫 怎么安装opencv2.4.13 qq空间小纸条怎么都打不开