博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Opencv on Ubuntu (from Ubuntu)
阅读量:5154 次
发布时间:2019-06-13

本文共 6184 字,大约阅读时间需要 20 分钟。



Introduction

Contents

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 or Copy the following script to gedit and save as opencv.sh

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 ).

Step 2

Open terminal.

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

This will complete opencv installation

Running OpenCV

Python

Loading an image in Python

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

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

1 #include   2 #include
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

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++

1 #include
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++

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

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.

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

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.

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

转载于:https://www.cnblogs.com/zfyouxi/p/4676492.html

你可能感兴趣的文章
hdu 2545 并查集
查看>>
[BZOJ4568][SCOI2016]幸运数字(倍增LCA,点分治+线性基)
查看>>
尤金·卡巴斯基:卡巴斯基实验室调查内网遭黑客攻击事件
查看>>
android之Handler Runnable实现倒计时
查看>>
putty修改编码
查看>>
安全版字符串操作函数
查看>>
数据库msqlserver的几种类型及解决MSSQLServer服务启动不了的问题
查看>>
CSS轮廓 边距 填充 分组和嵌套
查看>>
JAVA多线程--线程阻塞与唤醒
查看>>
JavaSE语法基础总结
查看>>
python自动化测试之mysql5.0版本数据库查询数据时出现乱码问题分析
查看>>
线性表9 - 数据结构和算法14
查看>>
OD使用教程21(上) - 调试篇21
查看>>
循环移位
查看>>
函数的两种调用方式
查看>>
Spring mvc4 + ActiveMQ 整合
查看>>
Python基础(8)素数输出
查看>>
VS.左侧_蓝黄绿_竖线
查看>>
POS Tagging 标签类型查询表(Penn Treebank Project)
查看>>
Cookie/Session机制详解
查看>>