So , I was following this this code sample from opencv about surf and homography and I was interested in the train sample that was required to such experiment . I downloaded the two images at the bottom box.png and box_in_scene.png to validate the correctness of this code , I was alright . Now , I went to test this code with my own image , on the left is an image of a flash drive , and on the right is an image of a scissor with an usb drive . I failed to get any rectangular box on the test image ( the scissor and usb drive) . . However I know the code is working when I take different train sample for example this one with a paper box on the left and paper box in the mix with bed sheet . . Now my question is , what sort of training images should I rely on to give a good response , or is it something to do with the scenery that I choose as my test sample. Also had I chosen a video sample as my test case , would I be able to receive more responsive result . Thanks .