c#GTK 2&使用Emgucv时3冲突

时间:2017-10-25 10:58:30

标签: c# opencv mono gtk emgucv

在课堂上使用Emgu时,我发现了一个奇怪的错误' ImageViewer'

当我没有静态类成员时,一切正常。例如,下面的代码

electron-webpack-quick-start

但是,只要我添加一个静态类成员,例如,将using Emgu.CV; using Emgu.CV.Util; using Emgu.CV.UI; namespace TmpTest { class TmpTest { private Mat img = new Mat(); // a non-static class member is OKey public static void Main(string[] arg) { SDKWrapper util = new SDKWrapper(); ImageViewer viewer = new ImageViewer (); VideoCapture capture = new VideoCapture (); Application.Idle += new EventHandler (delegate(object sender, EventArgs e) { Mat read_frame = capture.QueryFrame(); util.processFrame(read_frame); util.drawSkeleton(read_frame); viewer.Image = read_frame; }); viewer.ShowDialog (); return; } } } 更改为private Mat img,就会立即收到运行时错误

private static Mat img

我使用的是ubuntu 16.04和monodevelopment,有谁知道发生了什么以及如何解决它?

1 个答案:

答案 0 :(得分:0)

Emgu CV是OpenCV的.Net包装器。根据您使用的OpenCV版本,它可以针对GTK 2或GTK 3构建,但通常针对GTK 2.但是,应用程序不能同时使用GTK 2和GTK 3。所以我认为OpenCv部分使用GTK 2而你还有其他东西拉动GTK 3.你应该检查你正在使用的emgu CV二进制文件所依赖的库。