OpenCV Android Programming By Example
eBook - ePub

OpenCV Android Programming By Example

  1. 202 pages
  2. English
  3. ePUB (mobile friendly)
  4. Available on iOS & Android
eBook - ePub

OpenCV Android Programming By Example

About this book

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

In Detail

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.

Tools to learn more effectively

Saving Books

Saving Books

Keyword Search

Keyword Search

Annotating Text

Annotating Text

Listen to it instead

Listen to it instead

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
Preface
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
1. Getting Yourself Ready
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
Installing the OpenCV and Android development environment manually
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
OpenCV4Android SDK
Understanding how NDK works
An overview of NDK
A simple example of NDK
Android.mk
Building your first Android project with OpenCV
HelloVisionWorld Android application
Creating a project in Eclipse
Creating a project in Android Studio
Summary
2. App 1 - Building Your Own Darkroom
Digital images
Color spaces
The Mat class
Basic Mat operations
Processing the images stored on your phone
Loading an image to a Mat object
UI definitions
Reading an image using OpenCV
Calculating an image histogram
What are histograms?
Understanding histogram components
UI definitions
Calculating an image histogram
Enhancing the image contrast
Understanding histogram equalization
Enhancing grayscale images
UI definitions
Converting an image to grayscale
Equalizing a histogram for a grayscale image
Enhancing an HSV image
UI definitions
Equalizing a histogram for the image saturation and value
Enhancing an RGB image
UI definitions
Equalizing a histogram for the image color channels
Summary
3. App 2 - Software Scanner
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
Finding edges
The Sobel edge detector
The Canny edge detector
UI definitions
Applying the Sobel filter to find edges
Using the Canny edge detector
Detecting shapes
Understanding the Hough line transform
Detecting lines using Hough transform
UI definitions
Detecting and drawing lines
Detecting circles using Hough transform
UI definitions
Detecting and drawing circles
Summary
4. App 2 - Applying Perspective Correction
Image transformations and perspective correction
Translation
Rotation and translation
Scaled rotation
Affine
Perspective transformation
Rigid perspective correction
UI definitions
Estimating the perspective transformation using the object bounding box
Flexible perspective correction
UI definitions
Applying flexible perspective correction
Manual perspective correction
UI definitions
Selecting the corners manually
Summary
5. App 3 - Panoramic Viewer
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
Understanding the FAST corner detector
UI definitions
Using the FAST corner detector
Using native FAST
Understanding the ORB feature detector
UI definitions
Using the ORB feature detector
Using native ORB
Feature description and matching
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
Native feature matching
UI definitions
The native matching process
Stitching two images
UI definitions
The native stitcher
Summary
6. App 4 – Automatic Selfie
Cascade classifiers
Haar-like features
The integral image
Adaptive Boosting
Cascading
Using cascade classifiers to detect objects
Accessing your phone's camera using OpenCV
A camera preview
UI definitions
Previewing the camera frames
Detecting closed palms in the camera frames
Using the Java-based cascade classifier
Summary
Index

OpenCV Android Programming By Example

Copyright © 2015 Packt Publishing
All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.
Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the author, nor Packt Publishing, and its dealers and distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book.
Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.
First published: December 2015
Production reference: 1071215
Published by Packt Publishing Ltd.
Livery Place
35 Livery Street
Birmingham B3 2PB, UK.
ISBN 978-1-78355-059-3
www.packtpub.com

Credits

Author
Amgad Muhammad
Reviewers
Noritsuna Imamura
André Moreira
Commissioning Editor
Neil Alexander
Acquisition Editor
Meeta Rajani
Content Development Editor
Mayur Pawanikar
Technical Editor
Manthan Raja
Copy Editor
Tasneem Fatehi
Project Coordinator
Nidhi Joshi
Proofreader
Safis Editing
Indexer
Monica Ajmera Mehta
Graphics
Ahmed H. Alley
Kirk D'Penha
Jason Monteiro
Production Coordinator
Arvindkumar Gup...

Table of contents

  1. OpenCV Android Programming By Example

Frequently asked questions

Yes, you can cancel anytime from the Subscription tab in your account settings on the Perlego website. Your subscription will stay active until the end of your current billing period. Learn how to cancel your subscription
No, books cannot be downloaded as external files, such as PDFs, for use outside of Perlego. However, you can download books within the Perlego app for offline reading on mobile or tablet. Learn how to download books offline
Perlego offers two plans: Essential and Complete
  • Essential is ideal for learners and professionals who enjoy exploring a wide range of subjects. Access the Essential Library with 800,000+ trusted titles and best-sellers across business, personal growth, and the humanities. Includes unlimited reading time and Standard Read Aloud voice.
  • Complete: Perfect for advanced learners and researchers needing full, unrestricted access. Unlock 1.4M+ books across hundreds of subjects, including academic and specialized titles. The Complete Plan also includes advanced features like Premium Read Aloud and Research Assistant.
Both plans are available with monthly, semester, or annual billing cycles.
We are an online textbook subscription service, where you can get access to an entire online library for less than the price of a single book per month. With over 1 million books across 990+ topics, we’ve got you covered! Learn about our mission
Look out for the read-aloud symbol on your next book to see if you can listen to it. The read-aloud tool reads text aloud for you, highlighting the text as it is being read. You can pause it, speed it up and slow it down. Learn more about Read Aloud
Yes! You can use the Perlego app on both iOS and Android devices to read anytime, anywhere — even offline. Perfect for commutes or when you’re on the go.
Please note we cannot support devices running on iOS 13 and Android 7 or earlier. Learn more about using the app
Yes, you can access OpenCV Android Programming By Example by Amgad Muhammad in PDF and/or ePUB format, as well as other popular books in Computer Science & Computer Science General. We have over one million books available in our catalogue for you to explore.