I have a reference b/w image that contains a reference object (a coin for example). The object is marked by the user, that is the region of interest.
Now I want to
Applying a key point detector in the inputs without performing any kind of pre-processing is a very poor way to find relevant interesting matching points.
Given your images, Mathematical Morphology provides good tools to pre-process them and hopefully obtain better matches at a later step. One of these tools is called morphological reconstruction, and its generalization called Levelings, which will merge and extend flat zones based on a marker image. As you can see, your image is very noise in the sense that there are valleys (those dark points) everywhere, so you want to suppress most of that. Implementing Levelings is not hard at all, but since I'm not aware of freely available tools (actually there is a large framework developed mostly in France that I believe contains it, but I don't remember the name), let us stick with the more standard morphological reconstruction. We also don't have a marker image, but that is easy to construct: erode your image with some structuring element and apply morphological reconstruction, that is called geodesic opening by some authors. This will suppress some of your noisy valleys.
At this point your image might be good to use with some keypoint detector, but I would suggest binarizing it since what you want to match is irrelevant to the grayscale tones. The typical automatic method for this is given by Otsu, but there are others like Kapur's method which goes for histogram entropy minimization. I didn't use Otsu simply because it is very common, for some Stackoverflow-novelty I went for this other method :P (yes, very bad reason). Lastly, after binarization, you can continue processing your image. A single morphological closing might be enough here, as you want to remove some remaining noise points (which are not necessarily disconnected from the components, so removing components is potentially a bad choice now).
To keep it short, here is geodesic opening and the final pre-processing (using the points above) for your first image:

And here is the final result for your other two images (applying exactly the same process, no constant modification or anything else):

If I now proceed and match these using the typical SURF method, I get mostly perfect matches making the other problem (orientating one in relation to the other) very easy to solve. I'm not including the results for the matchings I get (unless someone want to compare the results) because I believe you should get the same result using OpenCV or any other correct implementation now.
If it matters, here is the single line in Mathematica to achieve the pre-processing discussed above:
g = Closing[Binarize[GeodesicOpening[f, DiskMatrix[5]], Method -> "Entropy"], 1]
where f is the input image in grayscale, and g is the resulting binary image.