//USB2カメラ(Opteon UB2D120) 単純画像取得プログラム // 2004/12/28 ver.0.1 by I.N. // Compiler:VC++ .NET 2003 // Library:DEPICT,ESPLIB // Exposure 1.0ms // 656x494 ... 18.1ms // 654x494 ... 18.1ms // 652x494 ... 12.0ms (ver.0.2 -> 10.1ms) // 640x480 ... 11.2ms // Exposure 2.0ms // 656x494 ... 19.4ms // 654x494 ... 19.4ms // 652x494 ... 12.9ms (ver.0.2 -> 11.1ms) // 640x480 ... 12.4ms #include #define FRAMENUM 300 #define WX 640 #define WY 480 //USB2カメラ関数のためのヘッダファイル #include "depict.h" //USB2カメラ関数のためのライブラリ #pragma comment(lib,"depict.lib") ULONG n; ULONG ulPlatformID; ULONG ulCameraID; ULONG ulSerialNumber; BOOL bCameraOpen; ULONG ulFullFrameRate; int bAgility, bFidelity, bTrigger; DEPICT_CAMERA_HANDLE hCamera=0; DEPICT_ACQ_STATUS sAcqStatus; int i; void ESP_Ready(void) { DWORD x1,y1,x2,y2; // ESPLIB --- Automatic Source Generator // [Image Window] ESP_CreateImage8(0,"Display",0,0,640,480,100); // [Text Window] ESP_OpenTextWindow(0,677,0,271,616); ESP_SetForeground(ESPMAINWINDOW); DepictEnumDevices(DepictPlatformTypeUnknown); DepictGetNumEnumCameras(DepictPlatformTypeUnknown, &n); ESP_Printf("Camera number=%d\n",n); if(!n){ ESP_Printf("No USB2 camera!\n"); return; } DepictGetEnumCameraInfo(DepictPlatformTypeUnknown,0,&ulPlatformID, &ulCameraID, &ulSerialNumber, &bCameraOpen); ESP_Printf("ulPlatformID=%d\n",ulPlatformID); ESP_Printf("ulCameraID=%d\n",ulCameraID); ESP_Printf("ulSerialNumber=%d\n",ulSerialNumber); ESP_Printf("bCameraOpen=%d\n",bCameraOpen); hCamera=DepictOpenCameraBySerialNumber(ulSerialNumber); if(!hCamera)return; DepictGetCameraFullFrameRate(hCamera, &ulFullFrameRate); ESP_Printf("ulFullFrameRate=%d\n",ulFullFrameRate); DepictGetCameraBundles(hCamera, &bAgility, &bFidelity, &bTrigger); ESP_Printf("bAgility=%d\n",bAgility); ESP_Printf("bFidelity=%d\n",bFidelity); ESP_Printf("bTrigger=%d\n",bTrigger); DepictSetPrimaryROI(hCamera, 0,0,WX-1,WY-1); DepictGetPrimaryROI(hCamera, &x1,&y1,&x2,&y2); ESP_Printf("x1,y1,x2,y2=%d,%d,%d,%d\n",x1,y1,x2,y2); sAcqStatus.hEvent = CreateEvent(NULL, FALSE, FALSE, NULL); sAcqStatus.hTriggerEvent = NULL; sAcqStatus.pTriggerTimestamp=0; DepictSetTriggerPeriod(hCamera, 0); DepictSetExternalTriggerDelay(hCamera, 0); //ゲイン指定 DepictSetCameraGain(hCamera, 1.0f); //露光時間指定 DepictSetPrimaryExposure(hCamera, 5000); //unit==micro sec //DepictSetPrimaryExposure(hCamera,25000); //unit==micro sec } void ESP_Main(void) { int t; ESP_StartClock(); t=ESP_GetClock(); ResetEvent(sAcqStatus.hEvent); DepictSingleAcquireEx(hCamera,DepictTriggerImmediate,ESP_VramPtr[0],&sAcqStatus,NULL,0); DepictWaitAcquireCompleteEx(hCamera,&sAcqStatus,2000); for(i=0;i