【问题标题】:How to merge detected edges to a colour capture in Emgu CV如何将检测到的边缘合并到 Emgu CV 中的颜色捕获
【发布时间】:2023-03-30 08:54:01
【问题描述】:

我正在尝试制作一个 C# 桌面应用程序(使用 Emgu CV 包装器),它从相机捕获提要,检测提要中的边缘,然后显示带有边缘的原始提要(彩色) - 所以有点混合颜色饲料和边缘。我成功地从相机中获取了提要。我还使用 Canny 方法检测提要中的边缘。问题在于,虽然原始馈送是彩色的,但边缘的检测是以灰度(黑色背景,白色边缘)完成的。我想知道如何将颜色提要与边缘提要“合并”以输出合并提要。

我尝试过 Emgu CV 中的 Copy 方法,但它输出黑色背景和正确着色的边缘(例如,如果我在相机前拿着一个红色立方体,立方体周围的边缘是红色的)。

非常感谢任何帮助。

【问题讨论】:

    标签: c# opencv webcam computer-vision emgucv


    【解决方案1】:

    好的,经过一番修改后,我找到了解决方案。诀窍是在反转的 Canny 结果和颜色输入上使用 And 函数。这是我与 Application.Idle 一起使用的函数:

        private void processFunction(object sender, EventArgs e) {
            Image<Bgr, Byte> frame = c0.QueryFrame();
            Image<Gray, Byte> grayscale = frame.Convert<Gray, Byte>();
            grayscale = grayscale.Canny(new Gray(0), new Gray(255)).Not(); //invert with Not()
            frame = frame.And(grayscale.Convert<Bgr, Byte>(), grayscale); //And function in action
            imageBox1.Image = frame;
    
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-13
      • 1970-01-01
      • 2011-09-04
      相关资源
      最近更新 更多