I have a GUI that connects to an external camera and processes frames in real time.
The camera produces a stream of objects that are defined by an external SDK that relies on a variety of .NET libraries
Before starting the GUI, I run
I wait for this to load, and then start the GUI
I have a listener that responds to each new frame from the camera
In that listener I call:
handles.f = parfeval(@analyzeFrameParallel, 0, img, handles.D);
img is a Byte structure, which is a .NET object generated by the Camera SDK, handles.D is the DataQueue, which has an afterEach associated with it to display the processed image
Now in the CLIENT, I can run
And it generates a matlab array of 0-255 values that can be sent to imshow to display the image
But, in analyzeFrameParallel:
function analyzeFrameParallel(img, D)
X = uint8(img);
causes the workers to crash. The crash dump file has a stack trace with first element:
Could it be that the parallel workers can't process .NET objects the same way that the CLIENT can? I tried running
after recapturing the data, but it still crashes
Are there .NET limitations to parallel computing toolbox?
Thanks to anyone out there with idea!