I have worked on some project which use computer vision software like Cognex's VisionPro. I am really impressing the way how Cognex's VisionPro detecting an object on image.
Let me descript about how it work. First, the master image is needed to be trained. In that training process VisionPro will extract some features of the train image. Second, Every time we want to detect that object in another query image, query image features will be extracted, and compare with the features of the train image to get it's location and rotated angle.
My question
Can we implement this method on opencv? Which algorithms could work in this case?
What I have done
I did some research and I know that we have keypoints detection methods like SIFT, SURF, or ORB and there is FLANN for keypoints matching. I have tried to run some example (most on opencv official tutorial), but the result it's not really as good as I want (it's to bad). The keypoints matching not really match on rotated object and it's really hard to get the rotated angle on query image.
This image below can better help you understand Cognex VisionPro's object dection.