Book Image

Android Application Programming with OpenCV 3

By : Joseph Howse
Book Image

Android Application Programming with OpenCV 3

By: Joseph Howse

Overview of this book

<p>Android Application Programming with OpenCV 3 is a practical, hands-on guide to computer vision and mobile app development. It shows how to capture, manipulate, and analyze images while building an application that combines photography and augmented reality. To help the reader become a well-rounded developer, the book covers OpenCV (a computer vision library), Android SDK (a mobile app framework), OpenGL ES (a 3D graphics framework), and even JNI (a Java/C++ interoperability layer).</p> <p>Now in its second edition, the book offers thoroughly reviewed code, instructions, and explanations. It is fully updated to support OpenCV 3 and Android 5, as well as earlier versions. Although it focuses on OpenCV's Java bindings, this edition adds an extensive chapter on JNI and C++, so that the reader is well primed to use OpenCV in other environments.</p>
Table of Contents (13 chapters)
Android Application Programming with OpenCV 3
Credits
About the Author
About the Reviewers
www.PacktPub.com
Preface
Index

Rendering the cube in ARCubeRenderer


Android provides a class called GLSurfaceView, which is a widget that is drawn by OpenGL. The drawing logic is encapsulated via an interface called GLSurfaceView.Renderer, which we will implement in ARCubeRenderer. The interface requires the following methods:

  • onDrawFrame(GL10 gl): This is called to draw the current frame. Here, we will also configure the OpenGL perspective and viewport (its drawing area on the screen) because the interfaces of ARCubeRenderer and CameraProjectionAdapter potentially allow the perspective to change on a frame-to-frame basis.

  • onSurfaceChanged(GL10 gl, int width, int height): This is called when the surface size changes. For our purposes, this method just needs to store the width and height in member variables.

  • onSurfaceCreated(GL10 gl, EGLConfig config): This is called when the surface is created or recreated. Typically, this method configures any OpenGL settings that we will not subsequently change. In other words, these...