Introduction to Computer Vision with the OpenCV Library on Linux

Abstract

The purpose of this document is to help a reader to get started with Computer Vision library OpenCV on Linux system. OpencCV is a multi-platform library, but this article will be focused only on OpenCV using Linux operating system ( although, just the installation of the OpenCV library and video camera is platform-specific, all examples in this article should compile on any platform where OpenCV is properly installed such as Mac OS, MS Windows and etc.). Reader will be guided through a step-by-step guide on how to install and use some of the basic functions of OpenCV library such as displaying images, playing a video or using a video camera to process a video input stream.

Conventions used in this article:

  • $ – execution on the command line by a non-privileged user
  • # – execution on the command line by a superuser
  • the actual command to be executed on the command line or code of program to be compiled
  • OUTPUT: output produced on the command line by command execution
  • NOTE: general notes and additional information

Introduction

In simple words a Computer Vision is a scientific field which attempts to provide a sight to the machine. This scientific field has expanded rapidly in recent years. Among researchers this growth is because of many improvements of vision algorithms and among the computer vision hobbyists this is due to the cheaper hardware components and processing power. OpenCV library plays a great role in the Computer Vision field as it helps greatly to reduce cost and preparation time of computer vision research environment needed by university students, hobbyists and professionals. OpenCV also provides a simple to use functions to get the work done in a simple, effective and elegant manner. OpenCV was started by Intel, and later it was transformed to an open source project now available on SourceForge.net. OpenCV library has multi-platform availability, and it is partially written in C++ and C language. Despite the fact that this library is available on many Linux distributions from its relevant package repositories, in this article we will attempt to install and use OpenCV library compiled from a source code downloaded from SourceForge.net web site.

The reasons for compiling a source code may include:

  • new version 2.0.0 recently released and more features available
  • some bugs fixed which affected Linux OpenCV 1.0.0 versions ( such as cvGetCaptureProperty() etc. )
  • more support is available for OpenCV 2.0.0 version than for former 1.0.0 version

This article will start with installation of OpenCV on Debian 5.0 ( Lenny ). Later a reader will be guided through a number of examples on how to use OpenCV to display an image, play a video and use camera to capture the video input stream.

Read more

Choosing the right Linux File System Layout using a Top-Bottom Process

July 31, 2009
By Pierre Vignéras


Abstract:

As you may probably know, Linux supports various filesystems such as ext2, ext3, ext4, xfs, reiserfs, jfs among others. Few users really consider this part of a system, selecting default options of their distribution’s installer. In this article, I will give some reasons for a better consideration of the file-system and of its layout. I will suggest a top-bottom process for the design of a “smart” layout that remains as stable as possible over time for a given computer usage.

Introduction

The first question that you may ask is why are there so many file-systems, and what are their differences if any? To make it short (see wikipedia for details):

  • ext2: it is THE Linux fs, I mean, the one that was specifically designed for linux (influenced by ext and Berkeley FFS). Pro: fast; Cons: not journalized (long fsck).
  • ext3: the natural ext2 extension. Pro: compatible with ext2, journalized; Cons: slower than ext2, as many competitors, obsolete today.
  • ext4: the last extension of the ext family. Pro: ascending-compatibility with ext3, big size; good read performance; cons: a bit too recent to know?
  • jfs: IBM AIX FS ported to Linux. Pro: mature, fast, light and reliable, big size; Cons: still developed?
  • xfs: SGI IRIX FS ported to Linux. Pro: very mature and reliable, good average performance, big size, many tools (such as a defragmenter); Cons: none as far as I know.
  • reiserfs: alternative to ext2/3 file-system on linux. Pro: fast for small files; Cons: still developed?

There are other file-systems, in particular new ones such as btrfs, zfs and nilfs2 that may sound very interesting too. We will deal with them later on in this article.

So now the question is: which file-system is the most suitable for your particular situation? The answer is not simple. But if you don’t really know, if you have any doubt, I would recommend XFS for various reasons:

Read more

Create disk image with dd

Howto CREATE BUNDLE UPLOAD and ACCESS custom Debian AMI using ubuntu

Introduction

This guide will provide all necessary steps on how to create, bundle, upload, run and connect Debian ETCH AMI on Amazon Elastic Compute Cloud (Amazon EC2). For this guide we have used a Ubuntu 9.04. However, any other Linux distribution can also be used as long as it contains java and ruby packages. For more information about Amazon EC2 read  here.

This page is not in any way an affiliate to Amazon Web Services. !

Prerequisites

  • Internet connection
  • registered user account for S3 and EC2 services with Amazon Web Services (AWS) 
  • Amazaon Access Key ID
  • Amazon Secret Access Key
  • Amazon Account Number
  • Amazon X.509 Certificate
  • at least 1GB free hard drive space
  • following packages need to be installed:
apt-get install ssh debootstrap ruby 
sun-java6-bin libopenssl-ruby curl

Before we start

 As you will see in the next sections of this guide many different files are required to successfully use Amazon’s EC2 Web Services. For the sake of simplicity, we will create a directory “aws” in ~/ and store all necessary files there for a quick access. There will be three exceptions:

Read more

sakis3g the mobile broadband internet connection scrip

Mobile Broadband Internet connection and Sakis3G

This article is just a continuation of my first article about my experience with mobile broadband Internet on a Linux system. To cut the long story short a current network managers are trying to do a pretty good job by establishing a Mobile Broadband connection in a Plug & Play manner, however, they are not always successful to do so and user ends up with frustration and full hands of debugging and guessing what might went wrong instead of spending time with intended work.

Read more

IPwatchD an IP conflict detection tool for Linux

IPwatchD an IP conflict detection tool for Linux

IPwatchD an IP conflict detection tool for Linux

Project name: IPwatchD – IP conflict detection tool
Author: Jaroslav Imrich
Project’s Home Page: IPwatchD

 

Introduction

When using a GNU/Linux operating system, from time to time you may come across a situation where network connectivity was interrupted due to the IP conflict. An IP conflict event occurs when two or more hosts on the same network are configured with identical IP addresses. At the present, there appears to be no code in the Linux kernel to take care of this situation by means of appropriate Gratuitous ARP response . Very often a network administrator is left in the complete ignorance by the Linux kernel and needs to troubleshoot IP conflict the hard way. An IP Address Conflict GUI dialog triggered by IPwatchD Daemon Fortunately, there is a simple daemon called IPwatchD which main purpose is to catch and evaluate packets on the network and this way is able to prevent an IP conflict occurrence. This is done by help of libpcap library. IPwatchD daemon is written in C language and can run in passive or active modes. The difference between a passive and active mode is that in the passive mode IPwatchD only logs every IP conflict event by engaging syslog daemon, and in active mode IPwatchD takes one step further and responds to Gratuitous ARP request which is the main construction block when it comes to the IP conflict prevention. This article will explore this simple daemon in terms of installation, configuration and usage.

Prerequisites

Before we can install IPwatchD under the GNU/Linux operating system it is recommended to confirm that all prerequisites needed by IPwatchD are installed on the system. Here is a list of packages you would need to install on Ubuntu 8.10.

 * build-essential - C compiler and other development tools
* libpcap-dev - Network packet capture library
* libnet1-dev - Network packet construction library
* libnotify-dev - sends desktop notifications to a notification daemon

On ubuntu or debian linux you can install those packages with a following linux command:

# apt-get install build-essential libpcap-dev libnet1-dev libnotify-dev 

Read more

Drupal how to install guide

How To install Drupal 7 on Fedora Linux

Drupal how to guideThis installation guide provides step-by-step instructions on how to install Drupal 7 on a Fedora Linux system. The guide consists of 6 easy to follow steps to conclude whole installation. If you are just little bit curious about the new Drupal 7 release it is time to see what it is about. Be aware that installation of web applications on Linux systems using SELinux such as Fedora or RedHat is now little bit more complicated since changing permissions with chmod command may not always solve the problem. This guide could also be used by RedHat and CentOS Linux users.

Ubuntu users visit: Drupal 7 Installation guide for Ubuntu

Read more

Enable Ubuntu's extra visual effects

Enabling Ubuntu compiz 3D cube Desktop Effect

If you ever get bored of your ordinary default Ubuntu desktop or you feel that you do not utilize your Graphic card the way you should, you can try to enable Ubuntu compiz 3D cube Desktop Effect the give your desktop an extra spark. This article will provide you with a step-by-step configuration on how to enable Ubuntu compiz 3D cube Desktop Effect.

Step 1: Installation of VGA driver

You may skip this step if you have already installed restricted display drivers from Ubuntu’s PPA repository. This step is optional even with a default Ubuntu installation. I recommend to proceed with Step 2 and let Ubuntu system will attempt to detect your VGA card and install appropriate VGA drivers for your card automatically. If that fails come back to Step 1 and do it manually as described below.

Installation of nVidia restricted driver

First add ubuntu PPA repository:

$ sudo add-apt-repository \
ppa:ubuntu-x-swat/x-updates
$ sudo apt-get update

Read more

IceCat 5 installation on Debian 6 Squeeze

This guide describes step-by-step installation of GNU/IceCat web browser on Debian 6.0 “Squeeze”. At the moment there are no pre-compiled packages for a Debian so we are going to do this nicely from command line by compiling GNU IceCat 5 from a sources code.

Step 1: Pre-requisites installation

First we need to install all pre-requisites. As a root use apt-get to fetch and install all required packages:

# apt-get install libgnomevfs2-dev bzip2 python zip \
pkg-config libgtk2.0-dev libnotify-dev libgl1-mesa-dev \
libasound2-dev libidl-dev libgl1-mesa-dev libiw-dev \
libxt-dev build-essential

Step 2: Yasm ( Modular Assembler ) compilation

Although yasm is part of the Debian repository and it is available as a pre-compiled package GNU IceCat requires yasm >= 1.1.0. From this reason we will need to compile yasm from source.

Read more

How to dual boot Windows XP and Ubuntu Linux

How to dual boot Windows XP and Ubuntu Linux

Introduction

My restless effort to promote a Linux operating system and encourage its usage among other “PC” users made me this time to tackle a core topic of this effort and that is dual boot Linux Operating System and MS Windows XP Pro. I really do not expect windows users to switch from MS Windows to the Linux from one day to another, but I rather expect a slower and gradual transition with less headaches and without productivity losses.

There are already plenty of excellent articles in regard to this topic. However, I do still see Linux forums flooded with simple basic questions on how to dual boot these two operating systems. I see users coming from a MS Windows environment completely lost when it comes to a UNIX File System Hierarchy Standard (FHS), partitioning using EXT3 file system and navigation with simple “cd” command. It is very hard for them to let go of an idea of C: and D: drives. In recent 2 or 3 years Linux operating systems and its installation has improved in such a manner that I do not see a problem for a NON-IT person to install its own fully functional and productive version of the LINUX on his “Designed for Microsoft Windows XP” notebook.

Despite my believe I have decided to write this Linux-Windows dual boot “howto” for new Linux enthusiasts. In fact, I have had a friend who has no IT background to helping me by following my steps in this tutorial and believe it or not, he could install his own dual booting system without any problems.

Be aware that we are not going to describe all installation steps for both Linux and Windows installations in this article, only those steps which are necessary to accomplish this task.

Read more