2012-05-12 3 views
0

У кого-нибудь есть пример того, как скелетонизировать с помощью OpenCV в C#.скелетование с использованием OpenCV в C#

спасибо

+1

-1. Google поможет вам в этом вопросе. В число вопросов, как ожидается, будут включены некоторые исследовательские работы. Что вы пробовали? С какими проблемами вы сталкиваетесь? –

ответ

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() 

Ниже результат:

enter image description hereenter image description here

метод не так хорошо, так что результат тоже не совершенен. Но лучше, надеюсь.

EmguCV документация: http://www.emgu.com/wiki/files/2.3.0/document/Index.html

Я уверен, что все функции будут доступны там. Так реализуйте себя.

Смежные вопросы