当我尝试以 GigE 或 WinVideo imaq.VideoDevice 打开 PointGrey BlackFly 相机时,如果相机在 FlyCapture2 中打开,Matlab 会锁定 - 如何停止?

Matlab locks when I try opening a PointGrey BlackFly camera as GigE or WinVideo imaq.VideoDevice if the camera is open in FlyCapture2 - How stop?

当我尝试将 PointGrey BlackFly 相机作为 GigE 或 WinVideo imaq.VideoDevice 打开时,如果相机已经在 FlyCapture2 中打开,我如何防止 Matlab 锁定?

我的代码

if ~ exist('videoDevice','var') 
  videoDevice = imaq.VideoDevice('winvideo', 2, 'RGB24_1288x728');  
end

如果相机已经在 FlyCapture2 中打开,95% 的时间会阻塞并挂起 Matlab。

系统:Windows7 Enterprise,64 位,Matlab 2016a,FlyCapture2 2.9.3 或 2.10

我认为您不能同时激活 FlyCapture2 和 Image Acquisition 工具箱。
我能给你的最好建议是在 Matlab 中打开设备之前检查 FlyCapture2 进程是否为 运行。

测试FlyCapture2是否为运行:

[status, result] = system('tasklist /FI "imagename eq Point Grey FlyCap2.exe" /fo table /nh');

结果(当运行):

Point Grey FlyCap2.exe       46820 Console                    3     43,232 K

您可以显示警告消息 and/or 终止 FlyCap2.exe 进程:

[status, result] = system('tasklist /FI "imagename eq Point Grey FlyCap2.exe" /fo table /nh');

if (~isempty(strfind(result, 'FlyCap2.exe')))
    %Display warning, and wait for user to press OK.
    waitfor(warndlg('FlyCap2.exe process is running'));

    %Terminate FlyCap2.exe process.
    system('taskkill /f /im "Point Grey FlyCap2.exe"');
end

%Open device...
if ~ exist('videoDevice','var') 
  videoDevice = imaq.VideoDevice('winvideo', 2, 'RGB24_1288x728');  
end