OpenCV 图像边缘提取(二)—— Sobel算子原理及OpenCV API使用(C#)

在这里插入图片描述

原理:在图像边缘像素跃迁大,对图像求一阶导数,导数值最大处即为边缘像素所在位置。
在这里插入图片描述

相关API:

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

参数说明:
在这里插入图片描述
当dx=0,dy=1时候,y方向轮廓被保留明显;
当dx=1,dy=0时候,x方向轮廓被保留明显;

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);
   }

在这里插入图片描述

补充说明:
本案例在.NET使用的OpenCV库为OpenCvSharp4

.NET 环境的OpenCv库

猜你喜欢

转载自blog.csdn.net/weixin_40671962/article/details/127059855
今日推荐