C++ 寻找一种更好的方法将Gstreamer中的帧捕获到glade中的图像容器中

C++ 寻找一种更好的方法将Gstreamer中的帧捕获到glade中的图像容器中,c++,linux,gstreamer,glade,C++,Linux,Gstreamer,Glade,我正在寻求帮助,寻找一种方法将图像帧从Gstreamer捕获到一个图像容器中,并转换成glade格式,目前我们正在使用cv::imshow(ImageFileName,MsgData->data.OpenCVImage);但是它在Glade容器表单之外,我们如何调整此代码以使其在Glade表单中,任何帮助都将非常好,谢谢大家 void writeframe(GtkMessageCustomData* MsgData) { std::chrono::seconds sec(1); //

我正在寻求帮助,寻找一种方法将图像帧从Gstreamer捕获到一个图像容器中,并转换成glade格式,目前我们正在使用cv::imshow(ImageFileName,MsgData->data.OpenCVImage);但是它在Glade容器表单之外,我们如何调整此代码以使其在Glade表单中,任何帮助都将非常好,谢谢大家

  void writeframe(GtkMessageCustomData* MsgData)
 {
   std::chrono::seconds sec(1); // 3 seconds timeout

  using shakes = std::chrono::duration<int, std::ratio<1, 100000000>>;

// Arm the callback for saving an image into the cv::mat
MsgData->data.pImageEvent->reset();
MsgData->data.bImageReceived = false;
MsgData->data.snapImage = true;
    //////// Comes from Event.h /////////////////
    MsgData->data.pImageEvent->wait(shakes(sec));
    if( MsgData->data.bImageReceived )
  
      {
      // printf("Image received\n");
    
  // ##########  MsgData->data.ImageCount) ##################################
   // ##########  May possibly be going to MAT ###############################
   // ##### Need to transfer to an image Control through the Frames###########
    char ImageFileName[256];
    // orignal code for Saving of images
   //   sprintf(ImageFileName,"image%05d.jpg", MsgData->data.ImageCount);
     sprintf(ImageFileName,"image.jpg", MsgData->data.ImageCount);
    // cv::imwrite(ImageFileName,MsgData->data.OpenCVImage);
    cv::imshow(ImageFileName,MsgData->data.OpenCVImage);
    // printf("Put-Data-in\n");
    
}
else
{
    printf("whoops\n");
}
void writeframe(GtkMessageCustomData*MsgData)
{
std::chrono::秒秒(1);//3秒超时
使用shakes=std::chrono::duration;
//为将图像保存到cv::mat中而启用回调
MsgData->data.pImageEvent->reset();
MsgData->data.bimanagereceived=false;
MsgData->data.snapImage=true;
////////来自Event.h/////////////////
MsgData->data.pImageEvent->wait(抖动(秒));
如果(MsgData->data.bImageReceived)
{
//printf(“接收到图像\n”);
//#########MsgData->data.ImageCount)##################################
//可能会去垫子###############################
//#####需要通过帧传输到图像控件###########
char-ImageFileName[256];
//用于保存图像的原始代码
//sprintf(ImageFileName,“image%05d.jpg”,MsgData->data.ImageCount);
sprintf(ImageFileName,“image.jpg”,MsgData->data.ImageCount);
//cv::imwrite(ImageFileName,MsgData->data.OpenCVImage);
cv::imshow(ImageFileName,MsgData->data.OpenCVImage);
//printf(“将数据放入\n”);
}
其他的
{
printf(“哎呀”\n);
}

}

根据您的用例,您可能会感兴趣,或者是否有任何可能的方法可以帮助我在代码中实现这一点,只需使用这些方法在表单的picturebox中实际显示图像即可。非常感谢您根据您的用例,您可能会感兴趣,或者是否有任何可能的方法可以帮助我在代码中实现这一点,使用这些方法在表单上的picturebox中实际显示图像。多谢各位