Nowadays, GPUs are multi-core parallel processors with very high memory bandwidth. Recently for last few years developers and researchers are offloading computationally intensive tasks to GPUs to gain significant speedup compared to the CPU. Most of the image processing algorithms perform same operation on a large number of pixels, which can be parallelized on single instruction multiple data GPU architecture. Initially shader based frameworks like GLSL, Cg etc have been used for GP-GPU. NVIDIA has developed CUDA to write scalable parallel programs in C like language. GLSL, Cg and CUDA provide significant speedup, however they offer complex integration frameworks and require specialized programming skills. Most of GPU based frameworks are developed using procedural programming, which limits the scope of flexibility, code reusability, information and complexity hiding. In this book, we bring in an object oriented framework for the CUDA based image processing. We demonstrate a set of design patterns exploiting programming advantages of an object oriented language, such as encapsulation, information hiding, code reusability, complexity hiding and extensibility.