載入一張照片, 利用 InRange
參數lower和higher顏色BGR上下限篩選感興趣區域,
得到一張遮罩m_img_inRange,再利用CvBlobDetector 進行Blob運算
1: using Emgu.CV;
2: using Emgu.CV.Cvb;
3: using Emgu.CV.CvEnum;
4: using Emgu.CV.Structure;
5: using Emgu.CV.VideoSurveillance;
6: using System.Diagnostics;
7: using System.Threading;
8:
9: private void CalInRange()
10: {
11: if (m_img_color == null) return;
12: m_img_inRange = m_img_color.InRange(lower, higher);
13: m_img_inRange_not = m_img_inRange.Not();
14: using (CvBlobs blobs = new CvBlobs())
15: {
16: m_blobDetector.Detect(m_img_inRange, blobs);
17: m_img_color_copy = m_img_color.Copy();
18: foreach (var pair in blobs)
19: {
20: CvBlob b = pair.Value;
21: CvInvoke.Rectangle(m_img_color_copy, b.BoundingBox, new MCvScalar(255.255, 255, 0), 5);
22: //CvInvoke.PutText(frame, blob.ID.ToString(), Point.Round(blob.Center), FontFace.HersheyPlain, 1.0, new MCvScalar(255.0, 255.0, 255.0));
23: }
24:
25: imageBox1.Image = m_img_color_copy;
26: imageBox2.Image = m_img_inRange;
27: imageBox3.Image = m_img_inRange_not;
28: }
29: }
OpenCV Feature Detectors類別支援:
- "FAST" – FastFeatureDetector
- "STAR" – StarFeatureDetector
- "SIFT" – SIFT (nonfree module)
- "SURF" – SURF (nonfree module)
- "ORB" – ORB
- "BRISK" – BRISK
- "MSER" – MSER
- "GFTT" – GoodFeaturesToTrackDetector
- "HARRIS" – GoodFeaturesToTrackDetector with Harris detector enabled
- "Dense" – DenseFeatureDetector
- "SimpleBlob" – SimpleBlobDetector
參考資料
1. EmguCV InRange
2. EmguCV CvBlobDetector
3. OpenCV Feature Detectors
全站熱搜
留言列表