**1. sift算法的錯誤**
~~~
sift = cv.xfeatures2d_SIFT().create()
~~~
出現錯誤:
[1] [AttributeError: 'module' object has no attribute 'xfeatures2d' \[Python/OpenCV 2.4\]]
**解決**:安裝pip install opencv-python opencv-contrib-python
[ 2] 又遇到如下錯誤:
cv2.error:OpenCV(4.1.0)C:\projects\opencvpython\opencv_contrib\modules\xfeatures2d\src\sift.cpp:1207: error: (-213:The function/feature is not implemented) This algorithm is patented and is excluded in this configuration; Set OPENCV_ENABLE_NONFREE CMake option and rebuild the library in function 'cv::xfeatures2d::SIFT::create'
**解決**:將opencv版本退到3.4.2可解決,卸載之前的包,然后
pip install opencv-python == 3.4.2.16
pip install opencv-contrib-python == 3.4.2.16
參考:https://www.jianshu.com/p/0f8185a1616f
**2.問題cv2.resize()報錯**
error: (-215:Assertion failed) !_img.empty() && ((imgtype) & ((1 << 3) - 1)) == 0 && (imgcn == 1 || imgcn == 3 || imgcn == 4) in function 'cv::xfeatures2d::SURF_Impl::detectAndCompute'
**解決:**請一定好好檢查圖片讀取路徑有沒有寫對!!!
可能錯誤:
1.圖片路徑寫成了如下形式:C:\Users\Desktop\test\
正確的應該為:C:/Users/Desktop/test/
(在程序中斜杠‘\’有轉義字符含義)
2.圖片路徑少寫了一個斜杠(圖片存放在test文件夾中)
錯誤:C:/Users/Desktop/test
正確:C:/Users/Desktop/test/
(千千萬萬不要忘了最后一個斜杠,不然讀取的就變成了test這個文件夾而不是里面的圖片了,因為一個不小心,我苦惱了兩天,還以為是opencv的鍋,嘗試了無數種解決方案,放佛一個白癡!!!)
3.圖片的格式不對!
4.圖片的數量不一致!
5.路徑中、文件夾名稱都不要包含中文!.(編程中各種命名都盡量使用易懂的英文,實在不行用拼音hhh)