1. 聲明變量
PCO_General strGeneral;
PCO_CameraType strCamType;
PCO_Sensor strSensor;
PCO_Description strDescription;
PCO_Timing strTiming;
PCO_Storage strStorage;
PCO_Recording strRecording;
2. 設(shè)置變量大小
strGeneral.wSize = sizeof(strGeneral);
strGeneral.strCamType.wSize = sizeof(strGeneral.strCamType);
strCamType.wSize = sizeof(strCamType);
strSensor.wSize = sizeof(strSensor);
strSensor.strDescription.wSize = sizeof(strSensor.strDescription);
strSensor.strDescription2.wSize = sizeof(strSensor.strDescription2);
strDescription.wSize = sizeof(strDescription);
strTiming.wSize = sizeof(strTiming);
strStorage.wSize = sizeof(strStorage);
strRecording.wSize = sizeof(strRecording);
3. 打開相機(jī),填寫變量結(jié)構(gòu)
PCO_OPENCAMERA(&hCam, iBoardNumber)
PCO_GETGENERAL(hCam, &strGeneral)
PCO_GETCAMERATYPE(hCam, &strCamType)
PCO_GETSENSORSTRUCT(hCam, &strSensor)
PCO_GETCAMERADESCRIPTION(hCam, &strDescription)
PCO_GETTIMINGSTRUCT(hCam, &strTiming)
PCO_GETRECORDINGSTRUCT(hCam, &strRecording)
4. 設(shè)置相機(jī)相關(guān)參數(shù),曝光時(shí)間,觸發(fā)模式,ROI區(qū)域大小等
5. arm the camera使相機(jī)準(zhǔn)備好
6. 獲取圖片大小,分配buffer
PCO_GETSIZES(hCam, &actualsizex, &actualsizey, &ccdsizex, &ccdsizey)
PCO_ALLOCATEBUFFER(hCam, &bufferNr, actualsizex*actualsizey*sizeof(WORD), &data, &hEvent)
其中bufferNr是buffer的編號(hào),actualsizex*actualsizey*sizeof(WORD)為data的大小,data用來(lái)存儲(chǔ)圖片數(shù)據(jù)。
7. 開始進(jìn)行記錄,并將圖片數(shù)據(jù)添加到指定的buffer中
PCO_SetRecordingState(hCam,0x0001);
PCO_AddBufferEx(hCam,0,0,bufferNr,actualsizex,actualsizey,bitres);
原來(lái)不清楚data中的圖片數(shù)據(jù)是怎么獲取的,本來(lái)想將這個(gè)困惑寫到這里,不過(guò)寫著寫著突然發(fā)現(xiàn)原來(lái)如此,它是通過(guò)bufferNr來(lái)制定第六步中分配相應(yīng)大小的data的。寫博客還是能夠把問(wèn)題給理清楚一點(diǎn)的。
8. 顯示圖像
這里可以采用原來(lái)的文章中提到的方法使用wxWidget中遇到的圖片存儲(chǔ)問(wèn)題一二
9. 停止記錄
PCO_SetRecordingState(hCam,0x000);
10. 從CamRAM中讀取圖片
PCO_GetNumberOfImagesInSegment(hCam, wActSeg, &dwValidImageCnt, &dwMaxImageCnt);
PCO_GetImageEx(hCam,wActSeg,dw1swImage,dwLastImage,bufferNr,actualsizex,actualsizey,bitres)
上述函數(shù)的應(yīng)該與AddBufferEx有類似的功能。AddBufferEx直接在記錄過(guò)程中將數(shù)據(jù)存儲(chǔ)在data中,而GetImageEx是從ccd的寄存器中讀取相應(yīng)的數(shù)據(jù)賦值到data中。
11. 釋放用于存儲(chǔ)圖像數(shù)據(jù)的buffer,關(guān)閉相機(jī)
PCO_FreeBuffer(hCamera,sBufNr)
PCO_CloseCamera(hCamera);
上面的過(guò)程是獲取單個(gè)圖像的整個(gè)流程,如果要連續(xù)進(jìn)行拍攝呢?思考中。。。。。。