OpenCV Android Programming By Example
Read it now on the O’Reilly learning platform with a 10-day free trial.
O’Reilly members get unlimited access to books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.
Book description
Develop vision-aware and intelligent Android applications with the robust OpenCV library
About This Book
- This is the most up-to-date book on OpenCV Android programming on the market at the moment. There is no direct competition for our title.
- Based on a technology that is increasing in popularity, proven by activity in forums related to this topic.
- This book uniquely covers applications such as the Panoramic viewer and Automatic Selfie, among others.
Who This Book Is For
If you are an Android developer and want to know how to implement vision-aware applications using OpenCV, then this book is definitely for you.
It would be very helpful if you understand the basics of image processing and computer vision, but no prior experience is required
What You Will Learn
- Identify and install all the elements needed to start building vision-aware Android applications
- Explore image representation, colored and gray scale
- Recognize and apply convolution operations and filtering to deal with noisy data
- Use different shape analysis techniques
- Extract and identify interest points in an image
- Understand and perform object detection
- Run native computer vision algorithms and gain performance boosts
Starting from the basics of computer vision and OpenCV, we'll take you all the way to creating exciting applications. You will discover that, though computer vision is a challenging subject, the ideas and algorithms used are simple and intuitive, and you will appreciate the abstraction layer that OpenCV uses to do the heavy lifting for you. Packed with many examples, the book will help you understand the main data structures used within OpenCV, and how you can use them to gain performance boosts. Next we will discuss and use several image processing algorithms such as histogram equalization, filters, and color space conversion. You then will learn about image gradients and how they are used in many shape analysis techniques such as edge detection, Hough Line Transform, and Hough Circle Transform. In addition to using shape analysis to find things in images, you will learn how to describe objects in images in a more robust way using different feature detectors and descriptors.
By the end of this book, you will be able to make intelligent decisions using the famous Adaboost learning algorithm.
Style and approach
An easy-to-follow tutorial packed with hands-on examples. Each topic is explained and placed in context, and the book supplies full details of the concepts used for added proficiency.
Show and hide more
Table of contents Product information
Table of contents
- OpenCV Android Programming By Example
- Table of Contents
- OpenCV Android Programming By Example
- Credits
- About the Author
- About the Reviewers
- www.PacktPub.com
- Support files, eBooks, discount offers, and more
- Why subscribe?
- Free access for Packt account holders
- What this book covers
- What you need for this book
- Who this book is for
- Conventions
- Reader feedback
- Customer support
- Downloading the example code
- Downloading the color images of this book
- Errata
- Piracy
- Questions
- Installing Tegra Android Development Pack
- Downloading and installing TADP
- TADP post-installation configuration
- Installing emulator system images
- Configuring Eclipse to work with NDK
- NDK verification
- Java SE Development Kit 6
- Android Studio
- Android SDK
- Eclipse IDE
- ADT and CDT plugins for Eclipse
- Android NDK
- Downloading Android NDK
- Installing and configuring Android NDK
- Building native code using Eclipse
- An overview of NDK
- A simple example of NDK
- Android.mk
- HelloVisionWorld Android application
- Creating a project in Eclipse
- Creating a project in Android Studio
- Digital images
- Color spaces
- The Mat class
- Basic Mat operations
- Loading an image to a Mat object
- UI definitions
- Reading an image using OpenCV
- What are histograms?
- Understanding histogram components
- UI definitions
- Calculating an image histogram
- Understanding histogram equalization
- Enhancing grayscale images
- UI definitions
- Converting an image to grayscale
- Equalizing a histogram for a grayscale image
- UI definitions
- Equalizing a histogram for the image saturation and value
- UI definitions
- Equalizing a histogram for the image color channels
- Spatial filtering
- Understanding convolution and linear filtering
- Removing noise
- The averaging filter
- The Gaussian filter
- The median filter
- UI definitions
- Applying filters to reduce image noise
- The Sobel edge detector
- The Canny edge detector
- UI definitions
- Applying the Sobel filter to find edges
- Using the Canny edge detector
- Understanding the Hough line transform
- Detecting lines using Hough transform
- UI definitions
- Detecting and drawing lines
- UI definitions
- Detecting and drawing circles
- Image transformations and perspective correction
- Translation
- Rotation and translation
- Scaled rotation
- Affine
- Perspective transformation
- UI definitions
- Estimating the perspective transformation using the object bounding box
- UI definitions
- Applying flexible perspective correction
- UI definitions
- Selecting the corners manually
- Image features
- Feature detectors
- Understanding the Harris corner detector
- UI definitions
- Using the Harris corner detector
- Calling a native Harris corner detector
- Using the native OpenCV library within Eclipse
- Using the native OpenCV library within Android Studio
- Working on the native part
- UI definitions
- Using the FAST corner detector
- Using native FAST
- UI definitions
- Using the ORB feature detector
- Using native ORB
- Understanding BRIEF and ORB feature descriptors
- Understanding the BRISK feature descriptor
- Understanding the FREAK feature descriptor
- Matching the features
- Working with feature matching
- UI definitions
- Finding an object in a scene
- UI definitions
- The native matching process
- UI definitions
- The native stitcher
- Cascade classifiers
- Haar-like features
- The integral image
- Adaptive Boosting
- Cascading
- Accessing your phone's camera using OpenCV
- A camera preview
- UI definitions
- Previewing the camera frames
- Using the Java-based cascade classifier
Show and hide more
Product information
- Title: OpenCV Android Programming By Example
- Author(s): Amgad Muhammad
- Release date: December 2015
- Publisher(s): Packt Publishing
- ISBN: 9781783550593