簡體   English   中英

使用實時視頻源監視Python中的模擬量規

[英]Using real time video feed to monitor analog gauge in Python

我希望這里有人可以幫助我解決這個問題。 我試圖找出一種很好的方法,當看起來像這樣的壓力表達到一定的可變壓力時,使用實時視頻供稿運行python 0script。

我非常有信心,因為將壓力計安裝在圖像框架中的固定位置上應該不會太困難,但是這種東西是新手,真的不知道從哪里開始。

有什么建議么? 提前致謝!

這個問題可能比您想象的要難得多。 通常,人們使用OpenCV解決圖像處理/模式識別問題。 文檔中提供了許多關於Python的出色教程。

從根本上講,您的問題是弄清楚針的旋轉角度。 然后從那里可以計算出壓力是多少。 如果幸運的話,您可以使用特征檢測+全息照相術找到針頭,然后計算角度。 但是我懷疑這種圖像會導致特征檢測。

模板匹配可以找到針,但是它對旋轉非常敏感,因此您必須生成大量具有不同針角度的模板,然后每次想要讀取壓力時都要遍歷所有模板。

使用電子壓力表讀取壓力可能會更快,更便宜且更容易。 您可以通過多種方法將電子儀表的輸出輸入Python。 某些儀表可以連接到網絡。 有些可以作為串行端口與RS232 / 422或USB通信。

如果您可以找到帶有數字顯示屏的儀表,則進行某種OCR /模板匹配以從攝像機讀取顯示屏會更加簡便。

編輯:

@jeremy arsenault的評論促使我想到了另一種解決方案。 如果您主要專注於檢測指針何時超過閾值,則可以尋找表盤的前緣。 您可能會更看向沒有指示器的表盤中央。

這種圖像確實很容易將其轉換為黑白閾值。 表盤是黑色的,背景(至少朝向中間)是白色的。 對圖像進行某種形態和閾值處理后,您可以尋找表盤的黑色像素。 無需模板匹配。 下面的圖片說明了一些想法。 第一張圖片是您的圖像閾值為黑白。 初始圖像非常干凈,但是如果您是從相機中抓取的,則可能必須先進行一些模糊形態處理,然后再設置閾值以確保在不需要的地方沒有雜散的黑色像素。 第二張圖像有一個疊加的圓圈,您可以在其中尋找黑色像素。 您可以找到前緣,后緣以及平均值,以獲得相當精確的中心值。

閾值圖像 環形感興趣區域

一些更多的實現細節/偽代碼。 對於計算機圖像,原點通常在左上角,+ y向下。 另外,我定義了隨着壓力增加而增加的角度θ。 圓的參數方程為

x = x0 - r*cos(theta + theta0)
y = y0 - r*sin(theta + theta0)

theta0是使壓力為零的偏移角度(對於所示壓力計,該角度為-45度左右。尋找針頭的蠻力方法是開始從零開始掃掠角度,然后逐漸增大,直到在x,y處找到黑色像素為止。持續增加,直到在x,y處找到一個白色像素為止,兩個角度的平均值給出了針的中心,您應該能夠計算壓力。

暫無
暫無

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

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