-1
我有一個輪子的骨架圖像,繪製2,4或6個直徑。 我也有分支點座標。如何檢測鏤空圖像中圓的數量?
我想檢測不同車輪約2種方式:
- 計數圈內黑色區域
- 計數直徑繪製
在這兩種情況下,我不知道我怎麼能實現他們。
正如你所看到的,車輪是不完美的骨架,所以這是很難檢測的差異。
這是我使用爲骨架的代碼:
第一所有的i值化圖像的,我擴張然後縮略。
from skimage import io
import scipy
from skimage import morphology
import cv2
from scipy import ndimage as nd
import mahotas as mah
import pymorph as pm
import pymorph
complete_path = "wheel1.jpg"
gray = cv2.imread(complete_path,0)
print(gray.shape)
cv2.imshow('graybin',gray)
cv2.waitKey()
ret,thresh = cv2.threshold(gray,127,255,cv2.THRESH_BINARY_INV)
imgbnbin = thresh
print("shape imgbnbin")
print(imgbnbin.shape)
cv2.imshow('binaria',imgbnbin)
cv2.waitKey()
element = cv2.getStructuringElement(cv2.MORPH_CROSS,(6,6))
graydilate = cv2.dilate(imgbnbin, element) #imgbnbin
graydilate = cv2.dilate(graydilate, element)
#graydilate = cv2.erode(graydilate, element)
cv2.imshow('dilate',graydilate)
cv2.waitKey()
#SKELETONIZE
out = morphology.skeletonize(graydilate>0)
skel = out.astype(float)
cv2.imshow('scikitimage',skel)
cv2.waitKey()
io.imsave('wheel.jpg', skel)
sk = skel
print(sk.shape)
原始圖片:
我解決了,w ith一個更好的骷髏(scikit形象是好的,但也mahotas圖書館)和檢索每個圖像的輪廓,我可以計算黑色區域,並認出一個2,4或6直徑的輪子! – improc