Thursday, September 22, 2005

encoder and gtgrey 1394 firewire camera program

c++ - preprocessor:

C:\Program Files\Point Grey Research\PGR FlyCapture\include,c:\Program Files\opencv4\cv\include,C:\Program Files\opencv4\otherlibs\highgui,C:\Program Files\OpenCV4\cxcore\include

link-general:
oldaapi32.lib olmem32.lib pgrflycapture.lib cxcore.lib cv.lib highgui.lib

link-input:
oldaapi32.lib olmem32.lib pgrflycapture.lib cxcore.lib cv.lib highgui.lib

C:\Program Files\Data Translation\SDK\Lib,C:\Program Files\Data Translation\SDK\Include,link-input,C:\Program Files\Point Grey Research\PGR FlyCapture\lib,C:\Program Files\opencv4\lib

//=========================
// encoder includes
//=========================

#include olmem.h>
#include olerrors.h>
#include oldaapi.h>

//=========================
// gtgrey 1394 camera Includes
//=========================
#include pgrflycapture.h>
// encoder:
board.hdrvr = NULL;
olDaEnumBoards(GetDriver,(LPARAM)(LPBOARD)&board); // get first available open layer board
olDaGetDASS(board.hdrvr,OLSS_CT,0,&board.hdass); // get handle to CT sub system

olDaSetCascadeMode(board.hdass,OL_CT_SINGLE);
olDaSetClockSource(board.hdass,OL_CLK_EXTERNAL);
olDaSetCTMode(board.hdass,OL_CTMODE_COUNT);
olDaConfig(board.hdass);
// get encoder counter value
olDaPause(board.hdass);
olDaStart(board.hdass);
olDaReadEvents(board.hdass, &c_value);
printf("%d \n ", c_value);
//get frame from 1394 camera
error = flycaptureGrabImage2( context,&image);
error = flycaptureConvertImage( context, &image, &imageConverted );
// convert gtgrey image to opencv format
IplImage* frame = 0;
frame = cvCreateImage(cvSize(glbNx, glbMy),8,3);
int a = 0;
for(int y=0; y glbMy; y++)
{
for(int x=0; x glbNx; x++)
{
(frame->imageData + frame->widthStep*y)[3*x] = imageConverted.pData[y*frame->width + x + a ];
(frame->imageData + frame->widthStep*y)[3*x+1] = imageConverted.pData[y*frame->width + x + (a++) ];
(frame->imageData + frame->widthStep*y)[3*x+2] = imageConverted.pData[y*frame->width + x + (a++) ];
a++;
}
}
cvShowImage("1394",frame);

No comments:

Post a Comment