I need to make an iOS app with these features:
Is there any online API to do that (from Google, Yahoo, ...)? For example, can I upload an image and I get an image URL and after that request a url to compare a new image with an exist one?
OpenCV library (for iPhone) contains many algorithms. You can simply compare color histograms of images, or use more complicated stuff. Which kind of matching do you mean? Finding duplicates or calculating measure of similarity of images?
If you want to match some simple template to find objects then try Viola & Jones algorithm and so called Haar cascades. OpenCV has trained collection of templates in XML files for detecting faces for example. OpenCV contains utility for training thus you are able to generate cascades for other kinds of objects