Geeks With Blogs
Josh Reuben February 2015 Entries
Getting Started with OpenCV
Overview OpenCV is a Computer Vision / Image Processing library. It used in ffmpeg video processing / streaming and ROS robot operating system. you can install it from here: Modules in the lib directory: opencv_core - data structures , maths opencv_imgproc -image processing. opencv_highgui - image / video reading / writing opencv_features2d - feature point detectors , descriptors , matchers opencv_calib3d -camera calibration, 2-view geometry estimation, stereo opencv_video ......

Posted On Monday, February 23, 2015 3:39 PM

Native Android Apps
Overview Native activities – create an application based only on native code, without a single line of Java. Use cases: Android sensor polling – more accurate than Java eventsCross platform 3D – include a common OpenGL static lib that can also be linked in say an ObjectiveC app. (If writing purely for Android, just use the Java API and import android.opengl.GLES20.* package, adapting a TextureView to perform EGL init like a GLSurfaceView - the performance leverages the same OpenGL ES calls via JNI ......

Posted On Tuesday, February 17, 2015 6:12 PM

JNI – the Java Native Interface
*note: for brevity, error checking code has been left out of this post. Overview The JNI API allows Java applications to invoke native C/C++ code and native C/C++ code to invoke Java. Using the JNI comes at the cost of losing JIT portability & type safety – recompilation of native code is machine instruction-set specific. Usage Declare a Native Method in Java: class MyClass { private native void doSomething(); // indicate method is implemented in another language public static void main(String[] ......

Posted On Monday, February 16, 2015 4:56 AM

Java Fork-Join
in java.util.concurrent package - JDK 7 A Framework for Divide and Conquer recursively divides a task into smaller subtasks until threshold check indicates subtask size is small enough to execute serially. Optimal threshold is affected by specific computational steps & obtained through profiling – heuristic: between 100 and 10000. abstracts multithreading - automatically scale up. Leverages work-stealing - Each worker thread maintains a queue of tasks. If one worker thread’s queue is empty, it ......

Posted On Sunday, February 15, 2015 6:30 AM

OpenCL - An Overview
Overview OpenCL is a GPGPU API that abstracts over acceleration devices (be they CPU, GPU or FPGA) to provide data-parallelism (as well as task-parallelism) behavior. heterogeneous portability is achieved by avoiding high level abstractions and exposing the hardware in a context that explicitly defines its work scheduling capabilities. An OpenCL application consists of two parts: the host program that runs on the CPU - API functions to discover devices and their capabilities & create a context, ......

Posted On Saturday, February 7, 2015 10:20 PM

OpenGL Compute Shaders – an overview
OverviewA compute shader is a programmable shader stage that expands OpenGL beyond graphics programming. Like other programmable shaders, a compute shader is designed and implemented with GLSL. A compute shader provides single stage SIMD pipeline parallelized on the GPU. The compute shader provides memory sharing and thread synchronization features to allow more effective parallel programming methods. Create a Compute Shader Program: glCreateShader(GL_COMPUTE_S... - create a compute shader glShaderSource() ......

Posted On Friday, February 6, 2015 11:45 AM

Copyright © JoshReuben | Powered by: