int CccModule::renderCMV2(uint8_t renderFlags, uint16_t width, uint16_t height, uint32_t frameLen, uint8_t *frame) { uint32_t numBlobs, numCCBlobs; BlobA *blobs; BlobB *ccBlobs; uint32_t numQvals, *qVals; Frame8 rawFrame(frame, width, height); rls(&rawFrame); m_blobs->blobify(); m_blobs->getBlobs(&blobs, &numBlobs, &ccBlobs, &numCCBlobs); m_blobs->getRunlengths(&qVals, &numQvals); // render different layers... // starting with the background m_renderer->renderBA81(RENDER_FLAG_BLEND, width, height, frameLen, frame); // then based on the renderMode, render/blend the different layers in a stack if (m_renderMode==0) m_renderer->renderCCB2(RENDER_FLAG_BLEND | renderFlags, width/2, height/2, numBlobs*sizeof(BlobA)/sizeof(uint16_t), (uint16_t *)blobs, numCCBlobs*sizeof(BlobB)/sizeof(uint16_t), (uint16_t *)ccBlobs); else if (m_renderMode==1) m_renderer->renderCCQ1(RENDER_FLAG_BLEND | renderFlags, width/2, height/2, numQvals, qVals); else if (m_renderMode==2) { m_renderer->renderCCQ1(RENDER_FLAG_BLEND, width/2, height/2, numQvals, qVals); m_renderer->renderCCB2(RENDER_FLAG_BLEND | renderFlags, width/2, height/2, numBlobs*sizeof(BlobA)/sizeof(uint16_t), (uint16_t *)blobs, numCCBlobs*sizeof(BlobB)/sizeof(uint16_t), (uint16_t *)ccBlobs); } return 0; }
void USBCamReader::readCurFrameGray(unsigned char* grayImgData) { assert(videoCap); IplImage* img = cvRetrieveFrame(videoCap); cv::Mat rawFrame(img); cv::Mat videoFrame(_h, _w, CV_8UC1, grayImgData); cv::cvtColor(rawFrame, videoFrame, CV_RGB2GRAY); }
void AVIReader::readCurFrameGray(unsigned char* grayImgData) { assert(videoCap); IplImage* img = cvRetrieveFrame(videoCap); cv::Mat rawFrame(img); cv::Mat videoFrame(_h, _w, CV_8UC1, grayImgData); if(rawFrame.type() == CV_8UC1) rawFrame.copyTo(videoFrame); else cv::cvtColor(rawFrame, videoFrame, CV_RGB2GRAY); }
void USBCamReader::readCurFrame(unsigned char* rgbdata, unsigned char* graydata) { assert(videoCap); IplImage* img = cvRetrieveFrame(videoCap); cv::Mat rawFrame(img); cv::Mat rgbImg(_h, _w, CV_8UC3, rgbdata); cv::cvtColor(rawFrame, rgbImg, CV_BGR2RGB); cv::Mat videoFrame(_h, _w, CV_8UC1, graydata); cv::cvtColor(rawFrame, videoFrame, CV_RGB2GRAY); }