簡體   English   中英

使用 Python 和 OpenCV 測量圖像中不規則邊界對象的像素之間的距離

[英]Measuring distances between pixels of an irregular bounded object in an Image with Python and OpenCV

我是圖像處理和 python 的新手,但有興趣測量兩個軸(主要和次要)的像素距離。 關於如何創建邊界和軸(主要和次要)的初始程序的此鏈接的確認。

我已經使用上面鏈接中的片段通過將cv2.drawContours(orig, box.astype('int'),-1, (0, 255, 0), 3)的參數更改為cv2.drawContours(orig, box.astype('int'),-1, (0, 255, 0), 3)來創建邊界cv2.drawContours(orig, ctns,-1, (0, 255, 0), 3)獲取軸但無法根據需要測量距離。 請幫助我了解如何根據附件實現預期結果,請記住,有界對象中1條線與另一條線之間的距離為1像素。 以下是附件。

我認為你應該做的是這個。你的cnts是一個點數組,重要的是你找到一種方法來定義你想要測量距離的點。

例如,也許是極端? 最大和最小的 x 值以及最大和最小的 y 值。 或者只是具有x1=x2y1=y2 在您決定要使用哪些點后,對於選定的點,簡單distance = √ x^2 + y^2

對於 1,您必須首先找到對象的中心。 我會建議這個線程: 不規則形狀的 OpenCV Centroid ,然后你可以應用下面解釋的相同邏輯。

2:

#say your contours array looks something like this.
cnts = [(12,12),(13,14),(14,16)...]

假設您選擇第 1 點:

selected_point = cnts[0] #(x,y) = (12,12)

從邏輯上講,它的對應項將具有相同的 x 或相同的 y 值,具體取決於您是垂直還是水平繪制線條。 例如,如果您水平移動,它將具有相同的 y 值。 因此,在cnts數組中搜索具有y=12值的另一個點,並使用x1-x2測量它們之間的距離。

暫無
暫無

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

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