我有一个视线解码器设备通过以太网连接到我的电脑。
我使用Emgucv捕获视频流并在图像框中查看。
以下是代码的一部分:
_capture = new Capture("udp://@169.254.1.144:15004");
_capture.ImageGrabbed += ProcessFrame;
Image<Bgr, Byte> frame,frame1;
private void ProcessFrame(object sender, EventArgs arg)
{
frame = _capture.RetrieveBgrFrame();
pictureBox1.Image = frame.ToBitmap();
}
在Imagebox
中观看的视频,但延迟时间为1秒;我计算出框架达到ProcessFramefunction
及其12fps及其正确值;
ImageGrabbed
事件会导致此延迟吗?
为什么会出现延迟?
注意:我使用usb相机代替视线并且工作正常;也可以通过以太网播放相机的视线加工也很好。
答案 0 :(得分:0)
这是由&#39; Capture&#39;使用的默认缓冲区的长度引起的。宾语。原始OpenCV有一个&#39; CV_CAP_PROP_BUFFERSIZE&#39;标志,您可以设置为使用.set()
更改此值