用Matrox抓取框架

时间:2018-01-22 19:53:53

标签: c++ image-processing frame-grab

我试图运行Matrox Image Library的示例代码来获取帧。当应用程序运行时,我得到的只是显示图像的黑屏。

我知道我的配置是正确的,因为当我尝试使用Matrox Intellicam软件时,我能够抓取图像,这使得它更加奇怪。它只是我需要改变的软件中的一些我不知道的东西。

我发现了这一点,但实际上没有用。 Frame Capture using Matrox Commands

这是我的代码。

       /* Allocate 2 display buffers and clear them. */
       MbufAlloc2d(MilSystem,
                   (MIL_INT)(MdigInquire(MilDigitizer[0], M_SIZE_X, M_NULL)*GRAB_SCALE),
                   (MIL_INT)(MdigInquire(MilDigitizer[0], M_SIZE_Y, M_NULL)*GRAB_SCALE),
                   8L+M_UNSIGNED,
                   M_IMAGE+M_GRAB+M_PROC+M_DISP, &MilImageDisp[0]);
       MbufClear(MilImageDisp[0], 0x0);
       MbufAlloc2d(MilSystem,
                   (MIL_INT)(MdigInquire(MilDigitizer1, M_SIZE_X, M_NULL)*GRAB_SCALE),
                   (MIL_INT)(MdigInquire(MilDigitizer1, M_SIZE_Y, M_NULL)*GRAB_SCALE),
                   8L+M_UNSIGNED,
                   M_IMAGE+M_GRAB+M_PROC+M_DISP, &MilImageDisp1);
       MbufClear(MilImageDisp1, 0x80);

/* Display the buffers. */ MdispSelect(MilDisplay[0], MilImageDisp[0]); MdispSelect(MilDisplay[1], MilImageDisp[1]); /* Grab continuously on displays at the specified scale. */ MdigControl(MilDigitizer[0], M_GRAB_SCALE, GRAB_SCALE); MdigGrabContinuous(MilDigitizer[0],MilImageDisp[0]); MdigControl(MilDigitizer[1], M_GRAB_SCALE, GRAB_SCALE); MdigGrabContinuous(MilDigitizer[1],MilImageDisp[1]);

我很困惑,我很感激任何暗示可能出错的想法。

1 个答案:

答案 0 :(得分:0)

帧抓取器失去同步,因为没有设置默认数字化仪格式或者它不是相机的正确格式。

要解决此问题,请在代码中设置DCF或在配置文件中手动设置。