Extracción de bordes de imágenes OpenCV (2): principio del operador Sobel y uso de la API OpenCV (C#)

Insertar descripción de la imagen aquí

Principio : Cuando la transición de píxeles en el borde de la imagen es grande, se obtiene la primera derivada de la imagen y el valor máximo de la derivada es la ubicación del píxel del borde.
Insertar descripción de la imagen aquí

API relacionadas:

public static void Sobel(InputArray src, OutputArray dst, MatType ddepth, int xorder, int yorder, int ksize = 3, double scale = 1, double delta = 0, BorderTypes borderType = BorderTypes.Reflect101);

Descripción del parámetro:
Insertar descripción de la imagen aquí
cuando dx = 0, dy = 1, el contorno en la dirección y se conserva claramente;
cuando dx = 1, dy = 0, el contorno en la dirección x se conserva claramente;

if (fileDialog.ShowDialog() == DialogResult.OK)
   {
    
    

       inputMat = Cv2.ImRead(picFile, ImreadModes.Grayscale);
       outMat = new Mat(new Size(inputMat.Cols, inputMat.Rows), inputMat.Type());
       Cv2.Sobel(inputMat, outMat, MatType.CV_8UC1, 1, 1,5);
       picBox_Display.Image = OpenCvSharp.Extensions.BitmapConverter.ToBitmap(inputMat);
       picBox_After.Image = OpenCvSharp.Extensions.BitmapConverter.ToBitmap(outMat);
   }

Insertar descripción de la imagen aquí

Notas adicionales:
La biblioteca OpenCV utilizada en .NET en este caso es OpenCvSharp4

Biblioteca OpenCv para entorno .NET

Supongo que te gusta

Origin blog.csdn.net/weixin_40671962/article/details/127059855
Recomendado
Clasificación