2017-05-22 2 views
0

Contrairement aux liaisons python pour la fonction OpenCv Dilate, la version C# a plus d'arguments qui sont tous obligatoires, et je ne suis pas sûr de ce qu'il faut utiliser pour les éléments de l'élément argument. J'ai essayé ce qui suit, et la sortie semble identique à la inpur:Utilisation de Erode et Dilate dans Emgu (OpenCV pour C#)

public static void Dilate(
    IInputArray src, 
    IOutputArray dst, 
    IInputArray element, 
    Point anchor, 
    int iterations, 
    BorderType borderType, 
    MCvScalar borderValue 
) 

En Python, je ferais quelque chose comme:

kernel = np.ones((5,5),np.uint8) 

dilation = cv2.dilate(src, kernel,iterations=3) 

En C#, j'ai essayé d'utiliser la Default values. mais la sortie ne regarder tout différent de l'entrée.

ScalarArray elem = new ScalarArray(0); 

    CvInvoke.Dilate(_cannyFrame 
      , _dilatedCanny 
      , elem 
      , new Point(-1,- 1) 
      , 6 
      , BorderType.Constant 
      , new MCvScalar(255, 255, 255));  

Répondre

1

L'erreur semble être dans l'élément structurant. Vous utilisez un elem égal à zéro et cela n'a aucun effet sur l'image de destination _dilatedCanny. En python vous utilisez un noyau avec un élément ...