2

我有一个 pointgrey USB3 相机,我与 Matlab R2015a 连接。一切正常,除了我得到随机的 Matlab 崩溃 - 通常每 10000 张图像。以下是崩溃消息。我运行的典型程序如下所示:

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

我无法弄清楚是什么触发了崩溃。如果有人有任何线索,我将不胜感激。谢谢,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
4

1 回答 1

0

是的,我做到了,通过使用:

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

我仍然不明白这两种方法之间的区别,但是这种方法更稳定。希望能帮助到你。

于 2016-10-14T07:34:49.683 回答