我正在尝试制作一个C#桌面应用程序(带有Emgu CV包装器),它可以从摄像头捕获提要,检测提要中的边缘,然后显示带有边缘的原始提要(彩色)-所以有点像彩色提要和边缘的组合。我成功地从摄像机中获得了提要。我还使用Canny方法检测提要中的边缘。问题是,虽然原始提要是彩色的,但边缘检测是以灰度(黑色背景,白色边缘)完成的。我想知道如何“合并”彩色饲料与边缘饲料输出一个合并的饲料。
我在Emgu CV中尝试过Copy方法,但它输出的是黑色背景和正确着色的边缘(例如,如果我在相机前持有一个红色立方体,则该立方体周围的边缘将被着色为红色)。
任何帮助都是非常感谢的。
发布于 2010-03-07 23:23:02
好的,经过一些修修补补,我找到了解决方案。诀窍是在倒置的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;
}https://stackoverflow.com/questions/2396411
复制相似问题