MATLAB: Registering a series of points to an image

Image Processing Toolboxregistration

I have an image of a blood vessel where the pixels belonging to the vessel have a high intensity and those belonging to other objects have a low pixel intensity.
I also have a number of 2D points (~100) that are in a similar shape to the vessel.
I would like to figure out the scaling, and translation (no rotation) of these points that will yield the best matching between these points and the vessel in the image.
I've tried to use fminsearch with the minimization function being the sum of the pixel values beneath the scaled and translated points at each iteration but it fails to produce a usable result.
Another thing I considered is a weighted least squares approach where the weights of points located at each of the pixel centers are the same as the pixel value. So the least squares solution would be "pulled" by the vessel itself whereas the other features in the image (low pixel intensities) would have less of an effect.
I was wondering if anyone had any advice or ideas for registering these points to an image.
Thanks

Best Answer

If you can segment the vessels in your image, maybe you can use an iterative closest point algorithm
It's written for 3D, but it should be possible to embed your 2D data into 3D.