OpenCV


Introduction

OpenCV (open source computer vision) is released under a BSD license and hence it’s free for both academic and commercial use. It has C++, C, Python and Java interfaces and supports Ubuntu Linux. OpenCV was designed for computational efficiency
and with a strong focus on real-time applications.

OpenCV is the most popular and advanced code library for Computer Vision related applications today, spanning from many very basic tasks (capture and pre-processing of image data) to high-level algorithms (feature extraction, motion tracking,
machine learning). It is free software and provides a rich API in C, C++, Java and Python. Other wrappers are available. The library itself is platform-independent and often used for real-time image processing and computer vision.

Installation

Many people are having problem with installing OpenCV even from Ubuntu Software Centre. Here a simple .sh script file get all dependancy files from internet and compile the source finally install opencv on your system. So that users can easily
write their CV files from C,C++, and Python

Step 1

Download the latest opencv.sh from https://github.com/jayrambhia/Install-OpenCV/blob/master/Ubuntu/
or Copy the following script to gedit and save as opencv.sh

Toggle line numbers

   1 version="$(wget -q -O - http://sourceforge.net/projects/opencvlibrary/files/opencv-unix | egrep -m1 -o '\"[0-9](\.[0-9])+' | cut -c2-)"
2 echo "Installing OpenCV" $version
3 mkdir OpenCV
4 cd OpenCV
5 echo "Removing any pre-installed ffmpeg and x264"
6 sudo apt-get -qq remove ffmpeg x264 libx264-dev
7 echo "Installing Dependenices"
8 sudo apt-get -qq install libopencv-dev build-essential checkinstall cmake pkg-config yasm libjpeg-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libdc1394-22-dev libxine-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev python-dev python-numpy libtbb-dev libqt4-dev libgtk2.0-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils ffmpeg
9 echo "Downloading OpenCV" $version
10 wget -O OpenCV-$version.zip http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/$version/opencv-"$version".zip/download
11 echo "Installing OpenCV" $version
12 unzip OpenCV-$version.zip
13 cd opencv-$version
14 mkdir build
15 cd build
16 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 INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON -D WITH_QT=ON -D WITH_OPENGL=ON ..
17 make -j2
18 sudo checkinstall
19 sudo sh -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf'
20 sudo ldconfig
21 echo "OpenCV" $version "ready to be used"
22

Note: If you are running 13.10 and you don't have a nvidia card then ensure you install ocl-icd-libopencl1 (sudo apt-get install ocl-icd-libopencl1) before running this script. Ubuntu 13.10 will install nvidia-319-updates as a dependency
for libopencv-dev by default if ocl-icd-libopencl1 is not installed (see bug report).

Step 2

Open terminal.

Toggle line numbers

   1 $ chmod +x opencv.sh
2 $ ./opencv.sh
3

This will complete opencv installation

Running OpenCV

Python

Loading an image in Python

Toggle line numbers

   1 from cv2.cv import *
2
3 img = LoadImage("/home/USER/Pictures/python.jpg")
4 NamedWindow("opencv")
5 ShowImage("opencv",img)
6 WaitKey(0)
7
Toggle line numbers

   1 $ python filename.py
2

Note that the test program waits for a key press to end.

in C

Loading an image file in C

Toggle line numbers

   1 #include
2 #include<opencv2/highgui/highgui.hpp>
3
4 int main()
5 {
6 IplImage* img = cvLoadImage("/home/USER/Pictures/python.jpg",CV_LOAD_IMAGE_COLOR);
7 cvNamedWindow("opencvtest",CV_WINDOW_AUTOSIZE);
8 cvShowImage("opencvtest",img);
9 cvWaitKey(0);
10 cvReleaseImage(&img);
11 return 0;
12 }
13

To compile C program, Let’s assume the file is opencvtest.c

Toggle line numbers

   1 $ gcc -ggdb `pkg-config --cflags opencv` -o `basename opencvtest.c .c` opencvtest.c `pkg-config --libs opencv`
2 $ ./opencvtest
3

In C++

Loading an image file in C++

Toggle line numbers

   1 #include<opencv2/highgui/highgui.hpp>
2 using namespace cv;
3
4 int main()
5 {
6
7 Mat img = imread("/home/USER/Pictures/python.jpg",CV_LOAD_IMAGE_COLOR);
8 imshow("opencvtest",img);
9 waitKey(0);
10
11 return 0;
12 }
13

to compile in C++

Toggle line numbers

   1 $ g++ -ggdb `pkg-config --cflags opencv` -o `basename opencvtest.cpp .cpp` opencvtest.cpp `pkg-config --libs opencv`
2 $ ./opencvtest
3

Note: Always include OpenCV header files in C and C++ as

Toggle line numbers

   1 #include "opencv2/core/core_c.h"
2 #include "opencv2/core/core.hpp"
3 #include "opencv2/flann/miniflann.hpp"
4 #include "opencv2/imgproc/imgproc_c.h"
5 #include "opencv2/imgproc/imgproc.hpp"
6 #include "opencv2/video/video.hpp"
7 #include "opencv2/features2d/features2d.hpp"
8 #include "opencv2/objdetect/objdetect.hpp"
9 #include "opencv2/calib3d/calib3d.hpp"
10 #include "opencv2/ml/ml.hpp"
11 #include "opencv2/highgui/highgui_c.h"
12 #include "opencv2/highgui/highgui.hpp"
13 #include "opencv2/contrib/contrib.hpp"
14

A bash script to compile opencv programs.Making a Bash Script to Compile OpenCV:

It’s kind of boring typing all this stuff. So, A bash file to compile OpenCV programs.
Name it .compile_opencv.sh and keep it in your home directory.

Toggle line numbers

   1 #!/bin/bash
2 echo "compiling $1"
3 if [[ $1 == *.c ]]
4 then
5 gcc -ggdb `pkg-config --cflags opencv` -o `basename $1 .c` $1 `pkg-config --libs opencv`;
6 elif [[ $1 == *.cpp ]]
7 then
8 g++ -ggdb `pkg-config --cflags opencv` -o `basename $1 .cpp` $1 `pkg-config --libs opencv`;
9 else
10 echo "Please compile only .c or .cpp files"
11 fi
12 echo "Output file => ${1%.*}"
13

Add an alias in .bashrc or .bash_aliases

Toggle line numbers

   1 $ alias opencv="~/.compile_opencv.sh"
2 $ opencv opencvtest.c
3 $ ./opencvtest
4

Note that the .bashrc is a hidden file. Do not include the '$' characters at the beginning of each line. The alias will work after you log out and back. You can type the alias opencv... command at the prompt to set the alias for the current
session.

版权声明:本文博客原创文章,博客,未经同意,不得转载。

Opencv on Ubuntu (from Ubuntu)的更多相关文章

  1. 基于opencv网络摄像头在ubuntu下的视频获取

     基于opencv网络摄像头在ubuntu下的视频获取 1  工具 原料 平台 :UBUNTU12.04 安装库  Opencv-2.3 2  安装编译运行步骤 安装编译opencv-2.3  参 ...

  2. Ubuntu杂记——Ubuntu下用虚拟机共享上网

    由于最近把自己电脑环境换成了Ubuntu,但学校的网络是电信的闪讯,大学里用过的人都知道这货有多坑,而且没有Linux客户端,上网都是问题,怪不得国内用Linux的人那么少,特别是高校的学生(让我瞎逼 ...

  3. [Ubuntu]在Ubuntu下搭建自己的源服务器

    1.摘要     网上有很很多关于搭建源镜像的文章,但是对于一般人来讲,用不着镜像所有的deb包,只对我们能用到的感兴趣.另外,对于一些在Ubuntu的源中没有的软件,我们也可以放在我们自己的源里,这 ...

  4. vm12 安装ubuntu15.10详细图文教程 虚拟机安装ubuntu安装 ubuntu更新软件 ubuntu一直卡在下载语言怎么办?

    1,准备工作-ubuntu下载 ubuntu官网下载 如何官网下载ubuntu http://www.ubuntu.com/download/ 2,打开虚拟机 虚拟机安装ubuntu15.10 虚拟机 ...

  5. 【Ubuntu】Ubuntu设置和查看环境变量

    [Ubuntu]Ubuntu设置和查看环境变量    转载 https://blog.csdn.net/White_Idiot/article/details/78253004 1. 查看环境变量 查 ...

  6. ubuntu 18.04在更新软件库时出现E: Release file for http://security.ubuntu.com/ubuntu/dists/bionic-security/InRelease is not valid yet...

    1.完整的错误信息如下: E: Release file for http://security.ubuntu.com/ubuntu/dists/bionic-security/InRelease i ...

  7. [Ubuntu Setup] Ubuntu 13.04 安装 ia32-libs

    http://stackoverflow.com/questions/23182765/how-to-install-ia32-libs-in-ubuntu-14-04-lts sudo -i cd ...

  8. apt-get update --> Bad header line (fresh install) Ign http://archive.ubuntu.com natty-security/multiverse Sources/DiffIndex W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/natty/Rele

    apt-get update --> Bad header line (fresh install) fresh natty install i386 desktop. I get this e ...

  9. Ubuntu Err:1 http://us.archive.ubuntu.com/ubuntu bionic InRelease Could not resolve 'us.archive.ubuntu.com' 错误

    Ubuntu 更新 apt-get update 的时候 出现 Err: http://us.archive.ubuntu.com/ubuntu bionic InRelease Could not ...

  10. [转帖]【Ubuntu】Ubuntu 各版本代号简介

    [Ubuntu]Ubuntu 各版本代号简介 https://www.jianshu.com/p/7b351fde8799 一.版本及代号说明 Ubuntu中,每个版本都有一个更为特色的名字,这个名字 ...

随机推荐

  1. cocos2dx-2.x CCFileUtils文件管理分析(2)

    于1于,我只是对整体结构进行了分析,然后,2于,我会在一些我们经常使用的分析功能. //获取给定文件名称的全路径 //以下这非常长一段凝视.通过举样例,像我们说明cocos2dx获取文件全路径的规则. ...

  2. 开源Math.NET基础数学类库使用(12)C#随机数扩展方法

    原文:[原创]开源Math.NET基础数学类库使用(12)C#随机数扩展方法                本博客所有文章分类的总目录:http://www.cnblogs.com/asxinyu/p ...

  3. QtQuick桌面应用程序开发指南 4)动态管理Note对象_B 5)加强外观 6)许多其他的改进

    4.2.2 Stateless(不管状态)JavaScript库 为了让开发轻松点, 使用一个JavaScript接口来和数据库交互是个好主意, 它在QML中提供了方便的方法; 在QtCreator中 ...

  4. swift 它们的定义TabBarItem

    1.效果图     2.NewsViewController.swift // // NewsViewController.swift // NavigationDemo // // Created ...

  5. Spring : 征服数据库 (两)

    本节介绍Spring和ORM集成框架.尽管Hibernate在开源ORM 社区很受欢迎.但是,本文将MyBatis案例解说.也MyBatis和Hibernate好坏是没有意义的,主要看实际需求,有兴趣 ...

  6. Android MotionEvent事故响应机制

    于android于.主要活动包括点击.按.拖累.滑动等操作,这些构成了Android事件响应,总体而言,,所有事件由例如以下三部分构成的基础: 按(action_down),搬家(action_mov ...

  7. Team Foundation Server 2015使用教程--团队项目创建

  8. hdu 5045 费用流

    滚动建图,最大费用流(每次仅仅有就10个点的二分图).复杂度,m/n*(n^2)(n<=10),今年网络赛唯一网络流题,被队友状压DP秒了....难道网络流要逐渐退出历史舞台???.... #i ...

  9. CodeForces 398B 概率DP 记忆化搜索

    题目:http://codeforces.com/contest/398/problem/B 有点似曾相识的感觉,记忆中上次那个跟这个相似的 我是用了 暴力搜索过掉的,今天这个肯定不行了,dp方程想了 ...

  10. Advanced Installer 制作.NetWeb部署安装包

    原文:Advanced Installer 制作.NetWeb部署安装包 因为是.Net的Web应用程序,所以想用Advanced Installer 调用Dll实现安装部署. 因为我需要自己定制参数 ...