Question: is there any difference between grey scale image and binary image?

Answer: 
Yes, but I'm not sure what this has to do with C++ or programming. A binary image could be an image where pixels are only either red or blue.

Binary Image: <http://en.wikipedia.org/wiki/Binary_image>

Grayscale Image: <http://en.wikipedia.org/wiki/Grayscale>
Yes   

**Binary Image**
A binary image is a black and white image where each **pixel value is either 0 or 1.** The value 0 represents background or black and the value 1 represents foreground or white.

**Grayscale Image**
A grayscale image is a black and white image with various shades of gray. The pixel value of a grayscale image is represented as an 8 bit signed integer. i.e values between 0 and 255. The pixel value of the grayscale image represents the brightness of the pixel. **The value 0 is black, the value 255 is white, and the values in between makeup different shades of gray.**