我有一台dotgrey 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
答案 0 :(得分:0)
是的,我做了,使用:
obj = videoinput(...)
frame=getsnapshot(obj)
我仍然不明白这两种方法之间的区别,但这种方法更稳定。 希望它有所帮助。