Aboutopencv
Aboutopencv
Aboutopencv
WITH SPECIAL THANKS TO: WIKIPEDIA, O-RAILY LEARNING OPENCV, ENCYCLOPEDIA OF ARTIFICAL INTELLIGENCE
Contents:
Definitions .3 Introduction to OpenCV..4 Functions of OpenCV.6 References...7
DEFINITIONS
SDK (software development kit): is typically a set of development tools that allows for the creation of applications for a certain software package, software framework, hardware platform, computer system, video game console, operating system, or similar platform, IDE (integrated development environment):
Is a software application that provides comprehensive facilities to computer programmers for software development An IDE normally consists of: 1- a source code editor 2- a compiler and/or an interpreter 3- build automation tools 4- a debugger
Cross platform: In computing, cross-platform, or multi-platform, is an attribute conferred to computer software or computing methods and concepts that are implemented and inter-operate on multiple computer platforms. Cross-platform software may be divided into two types; one requires individual building or compilation for each platform that it supports, and the other one can be directly run on any platform without special preparation, e.g., software written in an interpreted language or precompiled portable byte code for which the interpreters or run-time packages are common or standard components of all platforms. For example, a cross-platform application may run on Microsoft Windows on the x86 architecture, Linux on the x86 architecture and Mac OS X on either the PowerPC or x86 based Apple Macintosh systems. A cross-platform application may run on as many as all existing platforms, or on as few as two platforms. OS (Operating system): Is a set of programs that manages computer hardware resources, and provides common services for application software . The operating system is the most important type of system software in a computer system. Without an operating system, a user cannot run an application program on their computer, unless the application program is self-booting, AI (artificial intelligence): Is the intelligence of machines and the branch of computer science that aims to create it. AI textbooks define the field as "the study and design of intelligent agents"[2] where an intelligent agent is a system that perceives its environment and takes actions that maximize its chances of success.[3] John McCarthy, who coined the term in 1956,[4] defines it as "the science and engineering of making intelligent machines."[5] Machine learning: A branch of artificial intelligence is a scientific discipline concerned with the design and development of algorithms that allow computers to evolve behaviors based on empirical data, such as from sensor data or databases. Machine learning is concerned with the development of algorithms allowing the machine to learn via inductive inference based on observing data that represents incomplete information about statistical phenomenon and generalize it to rules and make predictions on missing attributes or future data. An important task of machine learning is classification, which is also referred to as pattern recognition, in which machines learn to automatically recognize complex patterns, to distinguish between exemplars based on their different patterns, and to make intelligent predictions on their class.
Introduction to OPENCV
1- What is OpenCV?
OpenCV (KNOWN AS OPEN COMPUTER VISION) is a SDK that used for developing COMPUTER VISION applications using a C++ IDE in different type of OSs.
It is a cross platform library (SDK) so that can run in any type of operating systems. This SDK first developed by INTEL. Later it supported by Willow Garage and officially launched in 1990.
This SDK written in c so can support C++ and C together. The OpenCV project was initially an Intel Research initiative to advance CPU-intensive applications, part
of a series of projects including real-time ray tracing and 3D display walls. The main contributors to the project included Intel s Performance Library Team, as well as a number of optimization experts in Intel Russia. In the early days of OpenCV, the goals of the project were described as:
Advance vision research by providing not only open but also optimized code for basic vision infrastructure. No more reinventing the wheel. Disseminate vision knowledge by providing a common infrastructure that developers could build on, so that code would be more readily readable and transferable. Advance vision-based commercial applications by making portable, performance-optimized code available for freewith a license that did not require to be open or free themselves
OpenCV s application areas include: 12345678910112D and 3D feature toolkits Egomotion estimation Facial recognition system Gesture recognition Human computer interaction (HCI) Mobile robotics Motion understanding Object identification Segmentation and Recognition Stereopsis Stereo vision: depth perception from 2 cameras Structure from motion (SFM) 12- Motion tracking
2- Functions of OpenCV:
Facial recognition system: is a computer application for automatically identifying or verifying a person from a digital image or a video frame from a video source. One of the ways to do this is by comparing selected facial features from the image and a facial database. Gesture recognition: Is a topic in computer science and language technology with the goal of interpreting human gestures via mathematical algorithms. Gestures can originate from any bodily motion or state but commonly originate from the face or hand. Current focuses in the field include emotion recognition from the face and hand gesture recognition. Many approaches have been made using cameras and computer vision algorithms to interpret sign language. However, the identification and recognition of posture, gait, proxemics, and human behaviors is also the subject of gesture recognition techniques.[1] Humancomputer interaction (HCI):
is the study, planning and design of the interaction between people (users) and computers. It is often regarded as the intersection of computer science, behavioral sciences, design and several other fields of study. Interaction between users and computers occurs at the user interface (or simply interface), which includes both software and hardware; for example, characters or objects displayed by software on a personal computer's monitor, input received from users via hardware peripherals such as keyboards and mouse s , and other user interactions with large-scale computerized systems such as aircraft and power plants. The Association for Computing Machinery defines human-computer interaction as "a discipline concerned with the design, evaluation and implementation of interactive computing systems for human use and with the study of major phenomena surrounding them."[1] An important facet of HCI is the securing of user satisfaction (see Computer user satisfaction).
Mobile robotics:
is an automatic machine that is capable of movement in a given environment.
Segmentation: Refers to the process of partitioning a digital image into multiple segments (sets of pixels, also known as super pixels). The goal of segmentation is to simplify and/or change the representation of an image into something that is more meaningful and easier to analyze.[1] Image segmentation is typically used to locate objects and boundaries (lines, curves, etc.) in images. More precisely, image segmentation is the process of assigning a label to every pixel in an image such that pixels with the same label share certain visual characteristics. The result of image segmentation is a set of segments that collectively cover the entire image, or a set of contours extracted from the image (see edge detection). Each of the pixels in a region are similar with respect to some characteristic or computed property, such as color, intensity, or texture. Adjacent regions are significantly different with respect to the same characteristic(s).[1] When applied to a stack of images, typical in Medical imaging, the resulting contours after image segmentation can be used to create 3D reconstructions with the help of interpolation algorithms like Marching cubes.
Stereopsis:
is the process in visual perception leading to the perception of depth from the two slightly different projections of the world onto the retinas of the two eyes. The differences in the two retinal images are called horizontal disparity, retinal disparity, or binocular disparity. The differences arise from the eyes' different positions in the head. Stereopsis is commonly referred to as depth perception. This is inaccurate, as depth perception relies on many more monocular cues than stereoptical ones, and individuals with only one functional eye still have depth perception except in artificial cases (such as stereoscopic images) where stereopsis differentiates the media from their two dimensional counterparts.
References: