以下是需要用到的函式,請讀者在閱讀**時先行了解:
sift演算法:此演算法用於獲取關鍵點和秒數符
flann匹配:用於匹配不同的描述符
詞袋:bow
支援向量機:svm
pos, neg = "pos-", "neg-" #全部的汽車**都是有pos-x.jpg組成的,非汽車都是有neg-x.jpg組成的。
detect = cv.xfeatures2d.sift_create() #建立sift演算法
extract = cv.xfeatures2d.sift_create()
indexpara = dict(algorithm=1, trees=5)
checkpara = dict(checks=50)
flann = cv.flannbasedmatcher(indexpara, checkpara)
bow_trainer = cv.bowkmeanstrainer(40) #定義乙個40個族的詞袋
bow_extract = cv.bowimgdescriptorextractor(extract, flann)#sift用來提取特徵,flann用來匹配描述符
for i in range(1, 9):
bow_trainer.add(extract_sift(path(pos, i)))
bow_trainer.add(extract_sift(path(neg, i)))
voc = bow_trainer.cluster() #voc即是詞袋的初始「詞典」
bow_extract.setvocabulary(voc)
traindata, trainlabels = ,
for i in range(1, 21):
traindata.extend(bow_xfeatures(path(pos, i)))#為不同的訓練資料定義不同標籤
traindata.extend(bow_xfeatures(path(neg, i)))
svm = cv.ml.svm_create() #建立支援向量機並用詞袋提取出來的描述符去訓練支援向量機
cv.destroyallwindows()**的編寫模仿於由喬.公尺尼奇諾編寫的opencv3計算機視覺python實現。
OpenCV實現運動目標檢測的函式
引數 dst 檢測結果 void update mhi iplimage img,iplimage dst,int diff threshold for i 0 i n i cvreleaseimage mhi mhi cvcreateimage size,ipl depth 32f,1 cvzer...
應用OpenCV檢測自定義目標
1.opencv build x86 vc10 bin下的opencv createsamples.exe 2.opencv build x86 vc10 bin下的opencv traincascade.exe 訓練的演算法是adaboost級聯分類器。關於adaboost的演算法講解,這篇博文有...
基於Python和Opencv的目標檢測與特徵
而我們訓練分類器的過程就是給這個分類函式 數學模型 找到一系列最優的引數,使得通過這個函式來判斷時能達到最好的分類效果 更高階一點的分類器就加入了學習和自適應的概念使得分類更精準 那麼通過什麼可以得到這個分類器呢?就是分類演算法 提到演算法我們不得不提到機器學習的概念,機器學習演算法簡單來說可以通過...