views:

142

answers:

3

Hello,

Is there a way to select the control points automatically in Matlab instead of manually selecting them by cpselect? Thank you very much.

+1  A: 

Hi

I don't have the Matlab Image Processing Toolbox, but I see from the documentation that cpeselect can be called with an argument specifying the initial set of control points. Can you reduce your task to automating the creation of that initial set ?

Regards

Mark

High Performance Mark
Hi,I'm not quite sure on how to create the initial set automatically. Thanks.
Veronica
A: 

I assume that you want to register two images (which is why one would use cpselect). The control points indicate features in the two images that should be aligned. If you know what kind of features there are in your images, you can try and extract control points automatically through image segmentation. For example, you could try and extract local intensity maxima from your images and use the four brightest ones. However, any such extraction is heavily dependent on the image, and it may only work on a very specific group of images.

Jonas
A: 

I just recently worked on a project where I had to do the same thing -- eventually I found that you can select control points automatically, but only if you use automatic selection to find the control points for both the unregistered and the orthophoto. (The control points used to define image transforms are stored in matrices, so if you can get your automated system to output a set of point coordinates in matrix form you can pass them to straight to cp2tform and bypass cpselect entirely.) On the other hand, cpselect stores corresponding pairs of image points using some kind of special data structure, so that I was never able to just pass it a set of control points for one image while leaving the other image blank.

estanford