예제 #1
0
 public void Actualizar(IEsCable nodo)
 {
     if (nodo == null)
     {
         return;
     }
 }
    public override void Actualizar(IEsCable nodo)
    {
        if (nodo == null)
        {
            return;
        }

        var matEntrante = nodo.MatOut();

        if (matEntrante == null)
        {
            return;
        }

        // if (generarNuevoMat)
        // {
        //     if (mat == null) mat = new Mat();
        // }
        // else
        {
            if (mat != matEntrante)
            {
                mat = matEntrante;
            }
        }
        Cv2.Threshold(mat, mat, umbral, valorMaximo, tipoDeUmbral);
        PropagarActualizacion();
    }
    public override void Actualizar(IEsCable nodo)
    {
        if (nodo == null)
        {
            return;
        }

        var matEntrante = nodo.MatOut();

        if (matEntrante == null)
        {
            return;
        }

        // if (generarNuevoMat)
        // {
        //     if (mat == null) mat = new Mat();
        // }
        // else
        {
            if (mat != matEntrante)
            {
                mat = matEntrante;
            }
        }
        Cv2.CvtColor(mat, mat, tipoDeConversion);
        PropagarActualizacion();
    }
예제 #4
0
    public override void Actualizar(IEsCable nodo)
    {
        if (nodo == null)
        {
            return;
        }

        var matEntrante = nodo.MatOut();

        if (matEntrante == null)
        {
            return;
        }

        // if (generarNuevoMat)
        // {
        //     if (mat == null) mat = new Mat();
        // }
        // else
        // {
        //     if (mat != matEntrante) mat = matEntrante;
        // }
        mat = matEntrante.Resize(new Size(0, 0), escala, escala, interpolation);
        PropagarActualizacion();
    }
    public override void Actualizar(IEsCable nodo)
    {
        if (nodo == null)
        {
            return;
        }

        var matEntrante = nodo.MatOut();

        if (matEntrante == null)
        {
            return;
        }
        if (apertureSize % 2 == 0)
        {
            apertureSize--;
        }
        if (apertureSize < 3)
        {
            apertureSize = 3;
        }
        else if (apertureSize > 7)
        {
            apertureSize = 7;
        }

        if (sobreescribirMat)
        {
            if (mat != matEntrante)
            {
                mat = matEntrante;
            }
        }
        else
        {
            if (mat == null)
            {
                mat = new Mat(matEntrante.Size(), matEntrante.Type());
            }
            else
            {
                if (mat.Width != matEntrante.Width || mat.Height != matEntrante.Height)
                {
                    if (mat.Width * mat.Height == matEntrante.Width * matEntrante.Height)
                    {
                        mat.Reshape(0, matEntrante.Rows);
                    }
                    else
                    {
                        mat = matEntrante.Clone();
                    }
                }
            }
        }
        Cv2.Canny(matEntrante, mat, umbralUno, umbralDos, apertureSize, L2gradient);
        PropagarActualizacion();
    }
    public override void Actualizar(IEsCable nodo)
    {
        if (nodo == null)
        {
            return;
        }

        var matEntrante = nodo.MatOut();

        if (matEntrante == null)
        {
            return;
        }

        // if (generarNuevoMat)
        // {
        //     if (mat == null) mat = new Mat();
        // }
        // else
        {
            if (mat != matEntrante)
            {
                mat = matEntrante;
            }
        }
        puntos = Cv2.FindContoursAsArray(mat, retrievalMode, approxMode);
        if (ordenarPorArea)
        {
            puntos = puntos.OrderByDescending(e => Cv2.ContourArea(e)).ToArray();
        }
        dibujo = new Mat(matEntrante.Rows, matEntrante.Cols, MatType.CV_8UC3);
        var loopColorsEvery = this.loopColorsEvery;

        if (loopColorsEvery < 1)
        {
            loopColorsEvery = 1;
        }
        for (int i = 0; i < puntos.Length; i++)
        {
            var area = Cv2.ContourArea(puntos[i]);
            if (area < umbralArea)
            {
                continue;
            }
            var colContornos = this.colContornos.Evaluate((i % loopColorsEvery) / (float)loopColorsEvery);
            var colScalar    = new Scalar(colContornos.b * 255, colContornos.g * 255, colContornos.r * 255);
            Cv2.DrawContours(dibujo, puntos, i, colScalar, 1, tipoDibujo);
        }
        PropagarActualizacion();
    }
 public virtual void Actualizar(IEsCable nodo)
 {
 }