21天精品區塊鏈課程免費學習,深入實戰行家帶路,助力開發人員輕鬆玩轉區塊鏈!>>>
安裝
#3.4.2sudo apt-get install opencvsudo apt-get install golang-1.9vi ~/.profileexport GOPATH=$HOME/Desktop/GoPathexport PATH=$PATH:$GOPATH/bin:wq!#https://github.com/hybridgroup/gocv#version 0.14.0go get gocv.io/x/gocv
gocv
//灰階圖 gocv.CvtColor(img,&grayMat, gocv.ColorRGBAToGray) //均值濾波 gocv.Blur(grayMat, &canny, image.Point{3,3}) //邊緣檢測 gocv.Canny(grayMat, &canny, 125, 225) //二值化處理,非黑即白圖片 gocv.Threshold(canny, &binaryMat, 165, 255, gocv.ThresholdBinary) //中值濾波 gocv.MedianBlur(binaryMat,&binaryMat,3) //建立一個40x40的Mat element_9 := gocv.NewMatWithSizeFromScalar(gocv.NewScalar(1,1,1,255), 40, 40, gocv.MatTypeCV8U) defer element_9.Close() //將圖片binaryMat 中 + - 40 距離的連通矩形 連在一起 gocv.MorphologyEx(binaryMat,&element_9,gocv.MorphCross, element_9) //尋找連通矩形 contoursList := gocv.FindContours(element_9, gocv.RetrievalCComp,gocv.ChainApproxNone) for _,contours := range(contoursList){ rect := gocv.BoundingRect(contours) gocv.Rectangle(&img,rect,blue,1) }
準備資料
mkdir opencv_datacd opencv_data#放置訓練資料圖片(大小一致)mkdir img#放置純背景圖片mkdir neg_img#根據提示操作,選擇需要識別的地區opencv_annotation --annotations=positive.txt --images=img#將positive.txt中的圖片對應的矩陣放置到 positive_sample.vec中等待訓練使用opencv_createsamples -info positive.txt -vec positive_sample.vec -num 66 -w 100 -h 63
訓練資料
mkdir dataopencv_traincascade -data data -vec positive_sample.vec -bg negative.txt -numPos 66 -numNeg 7 -numStage 15 -w 100 -h 63 -minHitRate 0.99 -maxFalseAlarmRate 0.5 -mode ALL -featureType HAAR -precalcValBufSize 4048 -precalcIdxBufSize 4048 -numThreads 24//Required leaf false alarm rate achieved. Branch training terminated //樣本太少