#include #include #include #include #include #include #include #include using namespace icl; using namespace std; Size size(320,240); class MyThread : public Thread{ public: MyThread(){ std::vector devs = DCGrabber::getDeviceList(); if(!devs.size()){ ERROR_LOG("no dc device found -> exiting!"); exit(-1); } w = new ICLWidget(0); w->setGeometry(100,100,640,480); w->show(); for(unsigned int i=0;isetDesiredSize(Size(640,480)); gs[gs.size()-1]->setDesiredFormat(formatRGB); gs[gs.size()-1]->setProperty("format","DC1394_VIDEO_MODE_640x480_MONO8@DC1394_FRAMERATE_15"); } image = new Img8u(Size(devs.size()*640,480),formatRGB); } ~MyThread(){ m.lock(); stop(); msleep(250); for(unsigned int i=0;isetROI(Rect(i*640,0,640,480)); gs[i]->grab()->deepCopyROI(&image); } // static icl::FileWriter soWriter("Frame###.ppm"); // soWriter.write(image); w->setImage(image); w->update(); m.unlock(); msleep(gs.size()*10); } } int device; ICLWidget* w; std::vector gs; Mutex m; ImgBase *image; }; int main(int nArgs, char **ppcArg){ QApplication a(nArgs,ppcArg); MyThread *x=new MyThread; x->start(); a.exec(); delete x; return 0; }