#!/usr/bin/env pythonimportcv2.cvascvimportunittestclassTestGoodFeaturesToTrack(unittest.TestCase):deftest(self):arr=cv.LoadImage("../samples/c/lena.jpg",0)original=cv.CloneImage(arr)size=cv.GetSize(arr)eig_image=cv.CreateImage(size,cv.IPL_DEPTH_32F,1)temp_image=cv.CreateImage(size,cv.IPL_DEPTH_32F,1)threshes=[x/100.forxinrange(1,10)]results=dict([(t,cv.GoodFeaturesToTrack(arr,eig_image,temp_image,20000,t,2,useHarris=1))fortinthreshes])# Check that GoodFeaturesToTrack has not modified input imageself.assert_(arr.tostring()==original.tostring())# Check for repeatabilityforiinrange(10):results2=dict([(t,cv.GoodFeaturesToTrack(arr,eig_image,temp_image,20000,t,2,useHarris=1))fortinthreshes])self.assert_(results==results2)fort0,t1inzip(threshes,threshes[1:]):r0=results[t0]r1=results[t1]# Increasing thresh should make result list shorterself.assert_(len(r0)>len(r1))# Increasing thresh should monly truncate result listself.assert_(r0[:len(r1)]==r1)if__name__=='__main__':unittest.main()