How to troubleshoot no video in a MATLAB compiled standalone executable?

3 views (last 30 days)
I'm trying to create a MATLAB compiled application that uses an Allied Vision GigE camera. My code works fine when running in MATLAB directly, but when I run the compiled standalone executable (I am using the files in the for testing folder), the figure does not display the live video, only a white box with a red x. I have no errors and all required support packages are installed.
Matlab and hardware support packages are already installed on the PC. The version of MATLAB is R2015b.
I'm not sure where to start to troubleshoot? Does the testing version not support live video?

Accepted Answer

Adithya Addanki
Adithya Addanki on 15 Jan 2016
Hi,
There has been a similar issue identified before, however we are still investigating this further to identify the root cause.
Gladly, there is a workaround. It is usually recommended to use WAITFOR with a figure handle before the end of the main function, so that the videoinput object does not get deleted.
For instance:
v = videoinput('winvideo', 1)
vidRes = v.VideoResolution;
nBands = v.NumberOfBands;
hFig = figure;
himg1 = image(zeros(vidRes(2), vidRes(1), nBands));
disp(himg1.Parent)
preview(v, himg1);
waitfor(hFig);
delete(v);
Please try reproducing the issue after making use of "waitfor".
Thank you,
Adithya
  1 Comment
Ondrej Hala
Ondrej Hala on 11 Sep 2016
Hello, it's not woking for me, what am I doing wrong? I am beginner in MATLAB. I have the same issue. It's working in Matlab, but not after compile the code.
This is my callback function for Connect Camera Button.
function ConnectCameraButton_Callback(hObject, eventdata, handles)
global CameraID
global CameraInput
axes(handles.CameraInputAxes);
CameraInput = videoinput('gige', CameraID, 'Mono8');
src = getselectedsource(CameraInput);
src.ExposureTimeAbs = 9000;
src.AcquisitionFrameRateAbs = 8.0;
hFig = figure;
hImage = image(zeros(1038, 1388, 1), 'Parent', handles.CameraInputAxes);
camroll(handles.CameraInputAxes, 90);
disp(hImage.Parent)
preview(CameraInput, hImage);
waitfor(hFig);
delete(CameraInput);

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!