cv_hough_circles — 2D features op

• 資料種類:image → feature

• 呼叫:fullseye.apply(img, "cv_hough_circles", a=0.5, b=0.5)(2-D 的模型是一張圖 + 兩個純量旋鈕 a,b∈[0,1])

• HALCON 對應:hough_circles(其含義與參數可參考 HALCON 手冊)

• GPU:無(僅 CPU 參考實作)

cv_hough_circles: input → output

*圖為在 128×128 合成輸入上實際執行的輸出。左為輸入,右為輸出。點雲以俯視散點顯示(亮度 = z),一維序列為折線,體資料為沿 z 的最大值投影,影片為中間影格,複數影像為振幅;無法成像的回傳值直接顯示數值。*

*旋鈕 a 不改變輸出(實測: 0.1 / 0.5 / 0.9 相同)。*

*旋鈕 b 不改變輸出(實測: 0.1 / 0.5 / 0.9 相同)。*

用法

基於霍夫變換的圓偵測(單一純量特徵,OpenCV 實作)。使用依賴邊緣梯度資訊的 HOUGH_GRADIENT 方法,以投票方式偵測圓心與半徑 —— 這裡只回傳偵測到的圓的數量(若為 0 個則回傳 0)。

相當於 HALCON 的 hough_circles(Detect centers of circles for a specific radius using the Hough transform.)(近似:只回傳個數,不回傳圓心座標)。實作為 cv2.HoughCircles(_u8(v), HOUGH_GRADIENT, dp=1, minDist=10+int(a*20), param1=100, param2=20+int(b*20), minRadius=3, maxRadius=20) —— a 把偵測到的圓心之間的最小距離設為 10〜30,b 把圓心投票閾值 param2(越小誤檢越多)設為 20〜40。param1(內部 Canny 高閾值)與半徑範圍(3〜20)固定。

前提條件:先做平滑(本 op 內部不平滑)。HOUGH_GRADIENT 沿每個像素的梯度方向為圓心投票,雜訊使方向分散時票數無法聚集。OpenCV 的說明與範例也都先模糊輸入再傳入(GaussianBlur / medianBlur)。實測(2026-11-03,96x96,0.3 背景上 0.6 的圓盤,雜訊 σ 0.02):不平滑時,無論半徑 6〜8 的 3 個圓盤或半徑 18 的 1 個圓盤都是 0 個(直接呼叫 cv2.HoughCircles 也回傳 None)。先施加 gaussian a=0.5(σ 約 1.65 px)後能正確數出 3 / 4 個。回傳 0 時無法區分「沒有圓」與「票被分散」,因此對有雜訊的影像務必在前面放置平滑。

詳細使用指南

• gallery2d_features 族使用指南

參考(範例資料、文獻)

• 範例資料目錄(下載 URL / 授權) —— 2-D 用 skimage.data(BSD/公有領域)加合成圖,3-D 給出真實資料源(Stanford/PDS 等)的下載 URL。

• 運算子來歷與參考文獻 —— 該運算子族所依據的研究/方法出處。

• 演算法的正典(作者、年份)與用途見上面的族使用指南。

在 Studio 中試試

下面的程式已確認可以執行(與圖相同的輸入)。在 Studio 說明中,此區塊會變成按鈕,可當場載入並執行。

cv_hough_circles 0.50 0.50

▸ 載入此管線  ·  載入並執行

可執行的範例(實際呼叫該運算子並已驗證的樣例)

• gallery2d_features — py -3.11 examples/gallery2d_features.py

型別可銜接的下一個運算子(可接受 feature 作為輸入)

identity · feature_to_img

同類別(features)

effective_bit_depth · blob_count · area_frac · count_contours · total_length · vol_count · sk_euler · sk_entropy_feat


*Provenance: ops.py — 2D 運算子登記表。本條目由 tools/opdocs.py md 自動產生(請勿手動編輯)。*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.