图像延迟问题
0
我想用传回的图像做识别,但是发现图像有延迟。主要代码如下:
ReceiveDecodedData是接收到图像数据的回调,在这里面把接收到的数据保存到变量crr_pic中
然后单开一个线程computThread,执行函数ComputThreadFunc
detector.Detect(crr_pic)是调用的C++代码,在里面识别然后用opencv画图。
识别的用的网络速度很快,所以不会是计算速度的问题
而且我的识别是在另一个线程里,每次识别完后获取的是最新的crr_pic,所以就算识别速度慢,画面也应该是帧率低而不是有延迟。
请教一下是什么原因,谢谢大家。
public sealed partial class MainPage : Page
{
private DJISDKManager sdkManager = DJISDKManager.Instance;
private DJIVideoParser.Parser videoParser;
private Vision.Detector detector;
Thread computThread;
private byte[] crr_pic;
private bool startComput = false;
public MainPage()
{
this.InitializeComponent();
detector = new Detector();
computThread = new Thread(new ThreadStart(ComputThreadFunc));
DJISDKManager.Instance.SDKRegistrationStateChanged += Instance_SDKRegistrationEvent;
sdkManager.RegisterApp("");
}
async void ReceiveDecodedData(byte[] data, int width, int height)
{
crr_pic = data;
if (!startComput)
{
startComput = true;
detector.SetWH(width, height);
computThread.Start();
}
}
public void ComputThreadFunc()
{
while (true)
{
detector.Detect(crr_pic);
Thread.Sleep(20);
}
}
|
|
|
|