zoukankan      html  css  js  c++  java
  • Opencv on Ubuntu (from Ubuntu)

    
    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.

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

  • 相关阅读:
    C#数据库数据导出Excel通用方法
    统计数据库大小的方法
    ashx中使用HttpContext.Current.Session ,出现未将对象引用设置到实例上[转]
    ASP.NET数据库备份[转]
    XDocument读取xml的所有元素以及XPath语法[转]
    Datastage客户端安装 记录
    依赖注入控制反转 (摘抄记录)
    管道处理模型四——MVC原理(摘抄cainong2005博客)
    管道处理模型三(摘抄cainong2005博客)
    管道处理模型二(摘抄cainong2005博客)
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/4676492.html
Copyright © 2011-2022 走看看