簡體   English   中英

霍夫變換未檢測到正確的圓

[英]Hough transform not detecting correct circle

我正在開展一個項目,我必須檢測交通信號燈(顯然是圓圈)。 現在我正在使用我從一個地方拾取的樣本圖像,但是經過我所有的努力,我無法獲得檢測正確圓(光)的代碼。

這是代碼: -

# import the necessary packages  
import numpy as np  
import cv2

image = cv2.imread('circleTestsmall.png')
output = image.copy()
# Apply Guassian Blur to smooth the image
blur = cv2.GaussianBlur(image,(9,9),0)
gray = cv2.cvtColor(blur, cv2.COLOR_BGR2GRAY)
# detect circles in the image
circles = cv2.HoughCircles(gray, cv2.HOUGH_GRADIENT, 1.2, 200)

# ensure at least some circles were found
if circles is not None:
    # convert the (x, y) coordinates and radius of the circles to integers
    circles = np.round(circles[0, :]).astype("int")

# loop over the (x, y) coordinates and radius of the circles
for (x, y, r) in circles:
    # draw the circle in the output image, then draw a rectangle
    # corresponding to the center of the circle
    cv2.circle(output, (x, y), r, (0, 255, 0), 4)
    cv2.rectangle(output, (x - 5, y - 5), (x + 5, y + 5), (0, 128, 255), -1)

# show the output image
cv2.imshow("output", output)
    cv2.imshow('Blur', blur)
cv2.waitKey(0)

我想要檢測圓圈的圖像 - 圖片。我要檢測的圓圈突出顯示。

這是輸出圖像: - 輸出圖像。

我嘗試使用高斯模糊半徑值和霍夫變換中的minDist參數,但沒有取得多大成功。
任何人都能指出我正確的方向嗎?

PS-一些主題問題,但對我的項目至關重要 -
1.我的電腦大約需要6-7秒才能顯示最終圖像。 我的代碼是壞的還是我的電腦? 我的規格是 - 英特爾i3 M350 2.6 GHz(第一代),6GB內存,英特爾高清顯卡1000 1625 MB。
2.霍夫變換是否會直接在二值閾值圖像上工作?
3.這個代碼在Raspberry Pi 3上的運行速度是否足夠實時? (我得將它安裝在一個移動的自動機器人上。)

謝謝!

首先,你應該稍微限制你的參數。

請參閱: http//docs.opencv.org/2.4/modules/imgproc/doc/feature_detection.html#houghcircles

至少為最小和最大半徑設置合理的值。 嘗試先找到一個特定的圓圈。 如果成功增加了半徑公差。

霍夫變換是一種強力方法。 它將為圖像中的每個邊緣像素嘗試任何可能的半徑。 這就是為什么它不適合實時應用程序。 特別是如果您沒有提供適當的參數和輸入。 你沒有半徑限制atm。 因此,對於每個像素,您將計算數百個(如果不是數千個)圓圈...

在你的情況下,交通燈也不是很圓,所以累積的結果不會很好。 嘗試尋找合理尺寸的高度飽和,明亮,緊湊的斑點。 它應該更快,更健壯。

如果限制圖像大小,可以進一步縮短處理時間。 我想你可以假設紅綠燈總是在你圖像的上半部分。 所以省略下半部分。 交通燈總是綠色,紅色或黃色。 刪除那些不是那種顏色的東西......我想你明白了我的意思......

我認為您應該首先根據紅綠燈顏色執行顏色分割。 它將極大地降低投資回報率。 然后,您只能在ROI邊上應用Hough變換(因為您需要輪廓)。

另一個限制:只接受內部顏色同質的圓圈。這會拋棄上面例子中的所有虛假命中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM