我在我的双核2.0 GHz笔记本电脑上运行Aforge.net提供的相机测试样本,内存为2 GB。现在,当应用程序开始显示来自摄像头的视觉效果时,我看到了大量的CPU使用率。它目前占整个CPU功耗的60%到70%。
任何人都可以告诉我为什么它消耗了那么多CPU,我该如何避免它?我必须建立一个类似的应用程序,需要相机视觉,我将使用C#。
在这种方法中,CPU消耗更多。
public void cam_NewFrame(object sender, NewFrameEventArgs eventArgs)
{
Bitmap imgforms = (Bitmap)eventArgs.Frame.Clone();
h = imgforms.Height;
w = imgforms.Width;
//video = (Bitmap)eventArgs.Frame.Clone();
BitmapImage bi = new BitmapImage();
bi.BeginInit();
MemoryStream ms = new MemoryStream();
imgforms.Save(ms, ImageFormat.Bmp);
ms.Seek(0, SeekOrigin.Begin);
bi.StreamSource = ms;
bi.EndInit();
bi.Freeze();
Dispatcher.Invoke(new ThreadStart(delegate
{
cam_image.Source = bi;//GetBitmapImage(imgforms);
}));
//bi = null;
// BitmapSource bi = Convert(video);
if(statusText == "Stop Record")
{
// AVIwriter.Quality = 0;
avwriter.AddFrame(imgforms);
}
}