[英]Python: Return position and size of arbitrary/teeth shapes in image using OpenCV
我對圖像處理和 object 檢測非常陌生。 我想在下圖中提取/識別 position 和牙齒尺寸:
這是我到目前為止使用 OpenCV 嘗試過的內容:
import cv2
import numpy as np
planets = cv2.imread('model.png', 0)
canny = cv2.Canny(planets, 70, 150)
circles = cv2.HoughCircles(canny,cv2.HOUGH_GRADIENT,1,40, param1=10,param2=16,minRadius=10,maxRadius=80)
circles = np.uint16(np.around(circles))
for i in circles[0,:]:
# draw the outer circle
cv2.circle(planets,(i[0],i[1]),i[2],(255,0,0),2)
# draw the center of the circle
cv2.circle(planets,(i[0],i[1]),2,(255,0,0),3)
cv2.imshow("HoughCirlces", planets)
cv2.waitKey()
cv2.destroyAllWindows()
我不知道 go 從這里到哪里。 我想把所有的牙齒都鑒定出來。 我怎樣才能做到這一點?
我真的很感激任何幫助..
請注意,牙齒結構或多或少是拋物線(倒置)。 如果您能以某種方式猜測定義這些斑點(牙齒)質心的拋物線形狀,那么您的問題可以在合理的程度上簡化。 我展示了一條穿過牙齒中心的紅線。
我建議您按以下方式處理它:
sklearn.preprocessing.binarize
。structure_centroid
。 看到這個: 如何在二維 numpy 數組中居中非零值? .structure_centroid
的位置為中心。 我已經展示了這種極片的卡通圖像(三角形半透明)。 覆蓋完整的 360 度。 請參閱: polarTransform
庫。centroid_path
。centroid_path
的圓圈上運行消除/選擇算法。 使用閾值距離刪除異常值。這應該給你一個很好的與圓圈的牙齒近似值。
我希望這有幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.