Depending on your needs.
If you are looking for fast image transformations (like filtering or computing wavelet/fourier transforms), C++ is better since it will generally outperforms Matlab functions/scripts that does the same thing.
Matlab is simpler to use for basic image processing things but IMHO is not so flexible when doing processing on complex image structures, s. a sequences of volumetric images (frequently found in medical imaging).
There are now a lot of easy-to-use AND OPEN-SOURCE C++ libraries for image processing, avoiding to buy a Matlab licence, and which provide a lot of image processing functionalities better then Matlab ones. Check these out :
- The CImg Library : one single C++ header file allowing to deal with template pixel types. Very simple to use, milti-plateform, seems powerful enough for covering 99% of basic image processing needs : http://cimg.sourceforge.net/
- The VIGRA library : More complete than CImg, but also seems more difficult to handle. STL-like coding with images, very generic but less lightweight : http://kogs-www.informatik.uni-hamburg.de/~koethe/vigra/
- DEVIL : Looks like a simple to use and powerful image library for doing games. Perhaps less image processing stuffs than in the two above : http://openil.sourceforge.net/
- LTI-Lib : No advices on this one, may be of interest : http://ltilib.sourceforge.net/doc/homepage/index.shtml