2017-04-06 73 views
0

我再次運行查找等高線功能,但總是返回空白。OpenCV FindContours return empty

我Xamarin的Android代碼:

var frame = new Mat(); 

    bitmapOptions = new BitmapFactory.Options(); 
    bitmapOptions.InScaled = false; 

    var bitmapTemplateOrig = BitmapFactory.DecodeResource(this.Resources, Resource.Drawable.abi_canny, bitmapOptions); 
    OpenCV.Android.Utils.BitmapToMat(bitmapTemplateOrig, frame); 
    bitmapTemplateOrig.Dispose(); 

    Imgproc.CvtColor(frame, frame, Imgproc.ColorRgba2gray); 

    var contours = new List<MatOfPoint>(); 
    Imgproc.FindContours(frame, contours, new Mat(), Imgproc.RetrList, Imgproc.ChainApproxSimple, new Core.Point(0, 0)); 
    var size = contours.Count(); // returns 0 here? 

我的測試圖像已經在這裏應用精明的檢測。 test image

任何想法?

+0

我能獲得518組的輪廓爲這個圖象的一半大小。你如何運行它? –

+0

不知道。我爲Android使用了Xamarin。我更新了我的代碼。 –

+0

@JeruLuke:你可以發佈你的代碼嗎? –

回答

1

下面是代碼在python:

_, contours, hierarchy = cv2.findContours(th, cv2.RETR_TREE, 1) 

print 'Number of contours:', len(contours) 

cv2.drawContours(img1, contours, -1, (0,255,0), 2) 
cv2.imwrite("img1cnt.jpg", img1) 

結果:

Number of contours: 518 

enter image description here