What is the advantage of using image object ?

Hello.

I wonder why we need image object for image processing. It looks like the image object is not much different from the memory object… and we can do the same job with memory objects without image objects.

What is the exact advantage of using image object in a kernel for image processing ?

Is the image object faster in accessing pixels or does it have any special features for image processing ?

and we can do the same job with memory objects without image objects.

Not really, unless you are willing to type a lot of code. I assume that so far you have only been accessing pixels individually using integers to index inside an array.

With image objects, in addition to using unnormalized integer coordinates, you can also use normalized floats to access the pixels. This means that a texture coordinate of 0.0 maps to the “left” of the image and 1.0 maps to the “right” of the image, with values in between returning the intermediate pixels.

Image objects also support bilinear filtering of pixel values (useful only for normalized coordinates).

What is the exact advantage of using image object in a kernel for image processing ?

Hardware acceleration when using a GPU. GPUs do all the operations described above (and more) in a dedicated hardware block.

Image object is necessary for image processing.
It creates a impressive image to users. And best for users interest .