2016-05-15 130 views
0

我在探索OpenCV(版本2.4.8)中的關鍵點匹配。要打印出來的關鍵點和/或描述,讓他們更好的理解:OpenCV 2.4.8,Python:無法打印SIFT關鍵點和描述符

test_img = cv2.imread('../../Downloads/stanford.jpg') 

print len(test_img) 

detector = cv2.FeatureDetector_create("SIFT") 
descriptor = cv2.DescriptorExtractor_create("SIFT") 

sskp = detector.detect(test_img) 
sskp, ssd = descriptor.compute(test_img, sskp) 

print sskp, ssd 

代碼編譯但不打印任何東西。下面是輸出:

/usr/bin/python2.7 /home/.../test_sift.py 
683 

Process finished with exit code 139 

這裏是 「stanford.jpg」 的形象: http://web.stanford.edu/group/iuc/assets/bg6.jpg

爲什麼print不在這裏工作了?

+0

你是什麼意思的「不打印任何東西」。因爲即使這些變量是空字符串(它們不太可能),它至少會打印一個換行符。你看到'[]沒有'嗎?您不以任何方式測試圖像是否實際加載('imread'不會引發異常) - 您確定圖像實際加載了嗎? –

+0

對不起,你是對的,我已經更新了這篇文章。退貨是:'處理完成退出代碼139'。我也測試了圖像確實存在。 –

+0

哦,那個退出代碼很重要,這是段錯誤。可能是OpenCV中的一個bug,它已經被修復 - 這個版本大約有2.5年的歷史。你可以嘗試升級到更新的版本嗎? –

回答

1

正如DanMašek所說,顯然這是舊版OpenCV中的一個bug。升級到OpenCV 2.4.12修復了這個問題。