Hello,
I'm using Visual Studio 2012 with the stitcher module of OpenCv 2.4.11 in order to stitch two videos that coming from two web cams.
My pc specs are:
Intel core i7@ 3.4 GHz, RAM: 16GB
The execution time for the stitching process was from 3 to 4 seconds. Then it improved to 1.4 second after I added GPU to my pc (NVIDIA GeForce GT 610). Finally when I enabled the CUDA 7.5 in the stitcher module by doing (cv::Stitcher stitcher = cv::Stitcher::createDefault(true)) the time improved to 0.6 second for stitching two frames.
This is my current code:
bool try_use_gpu = true;
cv::Stitcher stitcher = cv::Stitcher::createDefault(try_use_gpu);
stitcher.setWaveCorrection(false);
stitcher.setSeamEstimationResol(0.001);
stitcher.setPanoConfidenceThresh(0.1);
stitcher.setExposureCompensator(new cv::detail::NoExposureCompensator());
Stitcher::Status status = stitcher.stitch(input_frames, pano_frame);
I noticed some stranger behaviours with the OpenCV's stitcher module when I enabled the GPU inside it:
1) I didn't reach the real time.
2) The quality of the stitched frame is reduced after enable the GPU. I don't have the ghosting problem before the GPU also the brightness is lower than before.
3) Some time I have the following error, but I don't know its reasons:
OpenCV Error: Assertion failed (y == 0 || (data && dims >= 1 && (unsigned)y < (unsigned)size.p[0])) in cv::Mat::ptr, file C:\OpenCV2411\opencv\sources\modules\core\include\opencv2/core/mat.hpp, line 429
Did I do something wrong? or Are there any logical explanations for that behaviours?
Is the OpenCV's stitcher module a good choice? or do we have any alternatives for stitching two frames in real time?
Thanks,
↧