matlab crash during acquisition of pointgrey images

403 views Asked by At

I have a pointgrey USB3 camera, which I interfaced with Matlab R2015a. Everything works fine, except that I get random Matlab crashes - typically every 10000 images. Below is the crash message. the typical program I run looks like that:

vidobj = imaq.VideoDevice('pointgrey');
set(vidobj,'ROI',ROI);
for i=1:Nimages
   frame=step(vidobj)
   here some basic image analysis 
   end

I can't figure out what triggers the crash. If someone has any clue, I'd be really grateful. Thanks, GD

------------------------------------------------------------------------
          Access violation detected at Mon Jun 08 15:17:53 2015
------------------------------------------------------------------------

Configuration:
  Crash Decoding      : Disabled
  Crash Mode          : continue (default)
  Current Graphics Driver: NVIDIA Corporation GeForce GTS 450/PCIe/SSE2 Version 4.3.0
  Default Encoding    : windows-1252
  Graphics card 1     : NVIDIA ( 0x10de ) NVIDIA GeForce GTS 450    Version 9.18.13.1106
  Host Name           : 1P-Camera
  MATLAB Architecture : win64
  MATLAB Root         : C:\Program Files\MATLAB\R2015a
  MATLAB Version      : 8.5.0.197613 (R2015a)
  OpenGL              : hardware
  Operating System    : Microsoft Windows 7 Professionnel 
  Processor ID        : x86 Family 6 Model 26 Stepping 5, GenuineIntel
  Virtual Machine     : Java 1.7.0_60-b19 with Oracle Corporation Java HotSpot(TM) 64-Bit Server VM mixed mode
  Window System       : Version 6.1 (Build 7601: Service Pack 1)

Fault Count: 1


Abnormal termination:
Access violation

Register State (from fault):
      RAX = 0000000600000024  RBX = 00000ab7759f5df0
      RCX = 000000ffffffffff  RDX = 0000000000000000
      RSP = 00000001a801fc60  RBP = 000000002b7f7840
      RSI = 0000000000000000  RDI = 0000000000000000

      R8 = 000000002b7f7830   R9 = 00000001a801fd90
      R10 = 0000000000000049  R11 = 00000001a801fd20
      R12 = 0000000004120000  R13 = 0000000000000000
      R14 = 0000000000000001  R15 = 0000000000000000

      RIP = 00000000778c107c  EFL = 00010206

      CS = 0033   FS = 0053   GS = 002b

     Stack Trace (from fault):
    [  0] 0x00000000778c107c                        C:\Windows\SYSTEM32\ntdll.dll+00331900 RtlAnsiStringToUnicodeString+00000300
    [  1] 0x0000000077671a5a                   C:\Windows\system32\kernel32.dll+00137818 HeapFree+00000010
[  2] 0x000007fef2b96338 C:\Program Files\MATLAB\R2015a\bin\win64\MSVCR110.dll+00418616 free+00000028
    [  3] 0x0000000073f1a0c7 C:\Program Files\MATLAB\R2015a\bin\win64\tamutil.dll+00041159 tamutil::EventQueue::popEvent+00000119
    [  4] 0x0000000073f1a443 C:\Program Files\MATLAB\R2015a\bin\win64\tamutil.dll+00042051 tamutil::EventQueue::processEvents+00000275
    [  5] 0x0000000073f1abc7 C:\Program Files\MATLAB\R2015a\bin\win64\tamutil.dll+00043975 tamutil::EventThread::running+00000183
    [  6] 0x0000000073f24cc9 C:\Program Files\MATLAB\R2015a\bin\win64\tamutil.dll+00085193 tamutil::WorkThread::run+00000073
    [  7] 0x0000000073f2214a C:\Program Files\MATLAB\R2015a\bin\win64\tamutil.dll+00074058 tamutil::Thread::join+00000810
    [  8] 0x000007fef3006751 C:\Program Files\MATLAB\R2015a\bin\win64\boost_thread-vc110-mt-1_49.dll+00026449 boost::thread::swap+00000049
    [  9] 0x000007fef2b53fef C:\Program Files\MATLAB\R2015a\bin\win64\MSVCR110.dll+00147439 beginthreadex+00000263
    [ 10] 0x000007fef2b54196 C:\Program Files\MATLAB\R2015a\bin\win64\MSVCR110.dll+00147862 endthreadex+00000402
    [ 11] 0x00000000776659cd                   C:\Windows\system32\kernel32.dll+00088525 BaseThreadInitThunk+00000013
    [ 12] 0x000000007789b981                      C:\Windows\SYSTEM32\ntdll.dll+00178561 RtlUserThreadStart+00000033
1

There are 1 answers

0
user4986610 On

Yes, I did, by using:

obj = videoinput(...)
frame=getsnapshot(obj)

I still don't understand the difference between the two approaches, but this one is more stable. Hope it helps.