Opencv を使用して Python で FREAK Descriptor を実装しようとしていました。ここに私が使用しているコードがあります:
def surf_freak_detect(image,hessianThreshold):
surfDetector = cv2.SURF(hessianThreshold)
surfDetector=cv2.GridAdaptedFeatureDetector(surfDetector,50)
keypoints = surfDetector.detect(image,None)
freakExtractor = cv2.DescriptorExtractor_create('FREAK')
keypoints,descriptors= freakExtractor.compute(image,keypoints)
del freakExtractor
return keypoints,descriptors
これはFreak Descriptorを初期化する正しい方法ですか? 少しデバッグを行ったところ、インタプリタが記述子の計算に非常に長い時間がかかり、最終的にクラッシュすることがわかりました。キーポイントは適切に検出されます。奇妙なことに、動作することもあればクラッシュすることもあります。