我一直在嘗試使用,以找到一個單一的形狀在很簡單的背景輪廓的OpenCV的findContour
(我想用C++句法)。但是,它不斷將輪廓設置爲輪廓,而不是形狀本身。我想這是因爲Canny造成的白色邊緣,它不會使形狀閉合。OpenCV的 - 找到或訪問形狀輪廓不是由BG包圍,只有一個輪廓分離
例A:形狀是由圖像的邊緣 (這不是實際的輸入圖像,但更簡單的輸入圖像來說明這個問題。)
情形B :背景圍繞形狀
有我使用的主要功能:
findContours(grayImage, contours, hierarchy, RETR_LIST,CHAIN_APPROX_SIMPLE);
approxPolyDP(Mat(contours.at(largestContourIndex)),poly,3,true);
drawContours(output, contours, largestContourIndex, RGB(250,0,100), -1, 8, hierarchy, 0, Point());
編輯:跳繩邊緣檢測提供了我需要的輪廓,但我需要有最好的輪廓接近,我可以得到。
在此先感謝。
我看到你在我的回答後編輯了你的帖子。如果您對我的答案留下評論並解釋天氣是否有幫助,那將會很好,如果不是,那麼爲什麼這種方法不起作用(即您嘗試時發生了什麼) – penelope 2012-03-30 09:41:38
我實際上已經嘗試過您的方法以及其他幾種方法。我只是猶豫是否讓這個問題變得複雜而令人沮喪地回答。很快會做出回覆和編輯。謝謝您的幫助。 – leya 2012-04-01 06:49:40