2017-02-27 28 views
0

我試圖用openCV檢測具有特定顏色的形狀。 我想要做的第一件事是檢測圖像中的圓圈。Inrange後執行HoughCircles

我能夠檢測出界,使用houghCircles,通過調用該功能:

HoughCircles(gray, c, CV_HOUGH_GRADIENT, 1.5, gray.rows/10, 200, 100, 0, 0); 

現在,我試圖與特定的顏色來檢測圈。 我正在使用inRange函數執行此操作,該函數返回一個8位單通道圖像。

此功能只能過濾圖像中的給定顏色。即黃色。

但是,當我將返回的圖像傳遞給houghCircles函數時,它不返回任何圓圈。 沒有編譯錯誤。

我已經試圖改變一些houghCircles的參數,但我無法檢測到圓。

這是形象,是INRANGE返回的例子: Grayscale image

哪些參數做我需要使用,以檢測圖像中的圓?

由於提前,

彼得

回答

0

做一些與你的形象玩弄,我已經找到了一組工作參數。

HoughCircles(shapes, circles, CV_HOUGH_GRADIENT, 1, shapes.rows/4, 400, 20, 0, 0); 

我懷疑這些都是理想參數,我強烈建議你去建立自己的應用程序改變功能參數 - 有很多簡單的基於滑塊的應用程序的例子OpenCV的文檔,你可以用它來玩弄參數,直到遇到有效的東西。例如,This one是Hough Circles的演示。

此外,您可能沒有使用最好的工具來完成這項工作。通過使用輪廓,您應該能夠檢測並分類大量不同的形狀,而不僅僅是圓形。 This tutorial非常接近你想要做的,可能值得一讀。