Considering you have to find an object and an image, there is already a large difference in approaches:
- Object recognition: look at an image and classify the complete image as a single label. With recognition, the object that needs to be detected is known beforehand, like the exact shape.
- Object detection: you actually want to detect an object class inside input images. In brief you need to build a model for this object and run this model over the complete images.
Both techniques have different approaches, but some that might be usefull according to the exact problem you are facing are:
- bag of words approach
- k - nearest neighbours approach
- object detection using a cascade of weak classifiers
- support vector machine object detection
- random forest object detection
Some of these techniques depend on a large set of labeled images, assigning a class, then defining the nearest example to the new test image and feeding it the same label. Other techniques use tons of positive and negative object sampels to create a abstract model of how the item should look like.
When looking for identical known objects or models, template matching could be used.
Some techniques require the detection of features in the image, which could be extracted using specific image processing techniques. Examples are HAAR wavelets, Local Binary Patterns, Histogram Of Oriented Gradients, ...
Matching does require you to find interesting points, and describe them in a discrete way, this can be done by using feature descriptors.
So basically, go through the following information and describe an exact situation you want to reach:
Also some guides to basic recognition and detection can be found here:
Hope this helps you determine the right solution for your problem!