0

C#でOpenCVを使用してスケルトン化する方法の例を誰かが持っていますか?

ありがとうございました

4

1 に答える 1

2

申し訳ありませんが、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

すべての機能がそこで利用できると確信しています。だから自分で実装してください。

于 2012-05-12T15:40:16.427 に答える