0

我正在尝试获取相机的输出并使用 OpenCvSharp 在 ac# gui 中显示它。这是我基于示例的代码。但是,此代码会弹出第二个窗口 CvWindow,我想将其删除。这可能吗?从我的代码中删除 CvWindow 会使相机流不出现。

CvCapture cap= CvCapture.FromCamera(0);
CvWindow win= new CvWindow("camera");

while (CvWindow.WaitKey(10) < 0)
{
    IplImage img= Capture.QueryFrame();
    Bitmap bmp= BitmapConverter.ToBitmap(img);
    pictureBox1.Image = bmp;
}
win.Close();
4

2 回答 2

0

好吧,事实证明使用 Win32 API 隐藏窗口是可行的方法。但是,您必须确保隐藏 CvWindow 的父窗口。

于 2011-12-07T21:32:59.433 回答
0

这就是我在 Windows 窗体中显示 OpenCvSharp 视频源的方式。http://www.prodigyproductionsllc.com/articles/programming/use-opencv-in-a-windows-form-application-in-c/

隐藏窗口的最佳方法是一开始就不显示它。因此,删除构建新 CvWindow 的行。然后,您需要将您的 while 循环移动到一个新线程中,并使其与“while(true)”之类的东西连续。如果您不在单独的线程上运行它,您的应用程序将冻结。

于 2011-12-08T19:06:46.507 回答