非圓形表盤外觀一般為方形,常見於電流錶和電壓表。這些儀表沒有明顯的圓形表盤,因此無法通過直接hough圓檢測來定位表盤圓。觀察儀表特點,可以發現雖然表盤不是圓形,但是表盤上的刻度均在同乙個圓弧上,所以可以通過刻度線所在圓弧來確定圓弧所在圓的圓心和半徑。檢測方法可以使用hough變換和rscd。
理論上,hough變換可以檢測任意形狀的目標,所以也可以檢測圓弧,但是由於圓弧特徵不明顯,沒有足夠多的特徵點來確定圓心,故選擇rscd來進行圓弧檢測。
基於rscd檢測圓弧的主要步驟如下:
(1) 預處理影象
對影象進行預處理操作,這些操作包括:縮放影象減小運算量、灰度化影象、中值濾波去除較驗雜訊、高斯濾波平滑影象等。
(2) 計算影象縱向梯度
由於圓弧特徵不明顯,易受其他線條的干擾,且考慮到儀表方向一般為向上,因此,通過計算影象的縱向梯度來減小或消除雜訊影響,提高圓弧特徵在影象中的權重。
(3) 二值化
對縱向梯度影象進行二值化操作。
(4) 輪廓提取
對二值化後的影象提取輪廓,這些輪廓資料將用於計算刻度圓弧所在圓。
(5) rscd還原圓弧所在圓
由於rscd是隨機的從輪廓上選取三個點來作為乙個可能圓,並通過乙個密度區域來確定圓心,所以,圓弧的斷裂、少許錯位並不影響最終定位結果(在人眼誤差範圍內)。
下圖是非圓形表盤定位的過程:
python儀表指標識別 一種指標式儀表的識別方法
一種指標式儀表的識別方法 楊世傑,張平 摘 要 當前指標式儀表識別技術日益成熟,其中指標形狀和位置的識別大多 採用hough 變換演算法,傳統的 hough 變換演算法運算時間長 儲存空間大,使 得識別過程效率低下。針對以上缺點,提出一種改進型 hough 變換。通過限 定指標式儀表表盤環形區域 運...
手動實現雙指標式的單調佇列
有時候我們有這樣的需求 得到乙個 l,r 區間的最值,並且這個區間的兩個邊界指標是不斷朝乙個單方向移動的,這時手動的o n 優先佇列 就是單調佇列 就能滿足需求了 自己寫在這裡給自己參考,其實這東西已經爛大街了吧qaq include using namespace std define mp ma...
c 儀表指標旋轉
請教下,滑鼠事件裡怎麼讓滑鼠在繪製的儀表上移動,儀表指標也會隨著旋轉啊,請求指導。謝謝 我是在上獲取滑鼠的位置的,把這橫軸範圍對映到對應0到100的範圍裡,發現這樣會出現誤差。有好點的實現方法嗎 你看看這個是否符合你需要 win10 uwp 車表盤 徑向規 按照盤子的形狀調整長度 圓上的點 這裡省事...