C#でOpenCVを使用してスケルトン化する方法の例を誰かが持っていますか?
ありがとうございました
申し訳ありませんが、C# の例がありません。しかし、OpenCV-Python を使用した方法を提供できます。これは基本的な OpenCV 関数で行われるため、使用したすべての関数は C# でも利用できるはずです。
import cv2
import numpy as np
img = cv2.imread('img.png',0)
size = np.size(img)
skeleton = np.zeros(img.shape,np.uint8)
ret,img = cv2.threshold(img,127,255,0)
kernel = cv2.getStructuringElement(cv2.MORPH_CROSS,(3,3))
finished = False
while(not finished):
eroded = cv2.erode(img,kernel)
temp = cv2.dilate(eroded,kernel)
temp = cv2.subtract(img,temp)
skel = cv2.bitwise_or(skeleton,temp)
img = eroded.copy()
zeros = size - cv2.countNonZero(img)
if zeros==size:
finished = True
cv2.imshow("skeleton",skeleton)
cv2.waitKey(0)
cv2.destroyAllWindows()
以下は結果です。
方法があまり良くないので、結果も完璧ではありません。しかし、より良いことを願っています。
EmguCV ドキュメント : http://www.emgu.com/wiki/files/2.3.0/document/Index.html
すべての機能がそこで利用できると確信しています。だから自分で実装してください。