【问题标题】:Apply sobel filter for edge detection in emgucv在 emgucv 中应用 sobel 滤波器进行边缘检测
【发布时间】:2016-04-01 17:36:05
【问题描述】:

我正在尝试在我的图片上应用 Sobel 过滤器来检测边缘,如您在此处看到的:

Image<Gray, Byte> imgProcessed1;
private void Form1_Load(object sender, EventArgs e)
{



    Image<Bgr, Byte> imgProcessed=new Image<Bgr, byte>(@"C:\Users\Public\Pictures\Sample Pictures\1.jpg");

    imgProcessed1 = imgProcessed.Convert<Gray, byte>();
    Image<Gray, Single> img_final = (imgProcessed1.Sobel(1, 0, 5));
    pictureBox1.Image = img_final.ToBitmap();
}

但是结果很不寻常,我是opencv的新手。

我的输出

我需要这个结果。

我只需要应用这个过滤器

【问题讨论】:

  • 您必须找到准确的水平线和垂直线,因此很难确定使用 Sobel 运行所需的确切参数。我建议使用 Canny,然后使用 HoughLines 操作来确定哪些线是强垂直线和水平线,您可以通过玩变量来选择角度。
  • @DeJaVo 你知道我想在我的图片上应用 hor 和 ver 过滤器来检测车牌。我该怎么做?请你详细解释一下
  • 首先运行 Canny 边缘检测,然后运行 ​​HoughLines 以获得准确的 hor 和 ver 线。然后在 Sobel 上使用它并使用角度获得正确的结果,直到找到所需的输出。
  • 如果支持您的问题,请告诉我,如果支持,我会将其发布为答案,并将其标记为解决方案。
  • @DeJaVo 谢谢亲爱的朋友我更新了我的帖子

标签: c# c++ opencv image-processing emgucv


【解决方案1】:

根据opencv文档:

http://docs.opencv.org/2.4/doc/tutorials/imgproc/imgtrans/sobel_derivatives/sobel_derivatives.html

您应该按以下方式使用 sobel 运算符:

Sobel( src_gray, grad_x, ddepth, 1, 0, 3, scale, delta, BORDER_DEFAULT );

该函数接受以下参数:

  1. src_gray:在我们的示例中,输入图像。这里是 CV_8U
  2. grad_x/grad_y:输出图像。
  3. ddepth:输出图像的深度。我们将其设置为 CV_16S 以避免 溢出。
  4. x_order:x方向导数的阶数。
  5. y_order:y方向导数的阶数。
  6. scale、delta 和 BORDER_DEFAULT:我们使用默认值。

我希望它支持你的问题。

【讨论】:

  • 谢谢函数的值,我的意思是 src_gray, grad_x, ddepth, scale, delta, BORDER_DEFAULT
  • 我应该使用哪些值?
  • int scale = 1;整数增量 = 0; int ddepth = CV_16S;其余的都写在我的回答中。
  • 根据您的文档,您应该使用:Sobel(1,2,3)
【解决方案2】:

谢谢所有朋友,我终于找到了解决办法:

Image<Gray, byte> gray = new Image<Gray, byte>(@"C:\Users\Public\Pictures\Sample Pictures\1.jpg");
            Image<Gray, float> sobel = gray.Sobel(0, 1, 3).Add(gray.Sobel(1, 0, 3)).AbsDiff(new Gray(0.0));
            pictureBox1.Image = sobel.ToBitmap();

【讨论】:

  • 它像其他边缘检测一样简单,但阈值是像素之间的差异颜色值
猜你喜欢
  • 2017-02-26
  • 2018-12-12
  • 1970-01-01
  • 2023-03-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多