Red de conocimiento informático - Conocimiento del nombre de dominio - Cómo conectar opencv y osg juntos

Cómo conectar opencv y osg juntos

Programa de captura I.OSG////////////////////////////////////////////// /// /////////////////////////////// osg::ref_ptrlt; osg::Imagegt; nuevo osg:: .Imagen; IplImage* imgIpl=NULL; // clase CaptureDrawCallback: public osg::Camera::DrawCallback { public: CaptureDrawCallback(void){}; ~ CaptureDrawCallback(void){}; RenderInfo & renderInfo) const { //osg::Imagen *image = new osg::Image(); int ancho = 1000, alto=700 // image-gt; GL_RGB, GL_UNSIGNED_BYTE) ; imagen-gt; readPixels(0, 0, ancho/2, alto/ 2.5, GL_RGB, GL_UNSIGNED_BYTE); // //setFileName("LeftCamera.bmp"); writeImageFile(*image, "LeftCamera.bmp"); // int nchannels=(int)((image-gt; getPixelSizeInBits())==1?1: (imagen-gt; getPixelSizeInBits())/(8*image -gt; r ())); imgIpl=cvCreateImage( cvSize(imagen-gt; s(), imagen-gt; t()), 8*imagen-gt; r(), nchannels(imagen, imgIpl); ); // Esta función se utiliza para convertir una imagen OSG en una imagen OpenCV cvReleaseImage (amp; imgIpl } }.}; /////// //////////////////////////////////////////// ///////

II. Convertir OSG CImage a OpenCV IplImage IplImage* CImage2IplImage(osg::ref_ptrlt; osg::Imagegt; pCImg, IplImage *pIplImg) { //configuración de la imagen de salida pIplImg- gt; origin=IPL_ORIGIN_BL; //ingresa información de la imagen memcpy((unsigned char*)pIplImg-gt; imageData, pCImg-gt; data(), pCImg-gt; getImageSizeInBytes()); =0; para

(int y=0;ylt;pIplImg-gt;altura;y) { uchar* ptr=(uchar*)(pIplImg-gt;imageData y*pIplImg-gt;widthStep for (int x=0;xlt;pIplImg); -gt.width; x ) { temp=ptr[3*x]; // Guarda el valor R original ptr[3*x]=ptr[3*x 2]; } }} devolver pIplImg;