簡體   English   中英

使用 Python 從圖像計算汽車寬度

[英]Calculate car width from images using Python

我試圖從圖像中估計汽車的尺寸(在這種情況下為寬度)。 我有 3 個不同的圖像(具有不同的角度)如下所示。 我已經使用基本的東西來確定圖像的精明邊緣,結果也顯示在下面的圖像中。 這是我對每輛車的基本代碼:

file = 'image.jpg'
img = cv2.imread(file, cv2.IMREAD_COLOR)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
bilateral = cv2.bilateralFilter(gray, 9, 75, 75)
canny = cv2.Canny(bilateral, 50, 255)
cv2.imshow('Canny Image', canny)
cv2.waitKey(0)

不同角度的原圖

精明的圖像結果

現在,如果我使用cv2.goodFeaturesToTrack()cv2.cornerHarris()檢測角落,下圖顯示我得到了非常奇怪的結果,以藍點顯示。 在此處輸入圖片說明

我研究過,如果我們想從 2D 圖像計算物體的尺寸,我們至少需要 2 張圖像,就像我們的眼睛一樣。 現在,在給定的場景中,我怎樣才能找到汽車的寬度(即從背光左角到背光右角的真實世界距離)? 我有相機到汽車的距離,每個相機位置之間也有距離。 另外,請讓我知道此類(或相關)工作是否已經在 python 或任何其他語言中作為開源存在? 謝謝。

您正在使用傳統的 CV 算法,該算法無法解決您的問題,因為您的角落在平面背景中是准確的。
我建議您使用 2D 對象檢測算法,從那里您將獲得圖像空間中對象的高度和寬度,即像素長度。
對於在世界空間中獲得的寬度,使用相機校准變換等。

這個答案可能會幫助你。 https://stackoverflow.com/questions/13419605/how-to-map-xy-pixel-to-world-cordinates#:~:text=1%20Answer&text=If%20you%20have%20x%2Cy,then%20by %20your%20z_world%20coordinate

暫無
暫無

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

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