Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Speedup stitching

Now for stitching 6 images (1280*960) I spend 5 - 10 seconds, each run different time.

    [...] QueryPerformanceCounter(&t1);
    Stitcher stitcher = Stitcher::createDefault(false);
    Stitcher::Status status = stitcher.stitch(imgs, rois, pano);
    if (status != Stitcher::OK)
    {
        cout << "Can't stitch images, error code = " << status << endl;
        return -1;
    }
    QueryPerformanceCounter(&t2);
    elapsedTime = (t2.QuadPart - t1.QuadPart) * 1000.0 / frequency.QuadPart;
    printf("%.6f ms",elapsedTime);
    imwrite(result_name, pano); [...]

And I have a two questions.

(1) Why it (different computation time) happened

(2) Is it possible to improve the speed?

PS: Unfortunately, I can't simply use true flag in Stitcher::createDefault, because my roi size is small (170x960), and as I know this is the issue for GPU SURF functions. But may be it's possible to use TBB or GPU in other sipmle steps (like cv::detail::BestOf2NearestMatcher)?

Speedup stitching

Now for stitching 6 images (1280*960) I spend 5 - 10 seconds, each run different time.

    [...] QueryPerformanceCounter(&t1);
    Stitcher stitcher = Stitcher::createDefault(false);
    Stitcher::Status status = stitcher.stitch(imgs, rois, pano);
    if (status != Stitcher::OK)
    {
        cout << "Can't stitch images, error code = " << status << endl;
        return -1;
    }
    QueryPerformanceCounter(&t2);
    elapsedTime = (t2.QuadPart - t1.QuadPart) * 1000.0 / frequency.QuadPart;
    printf("%.6f ms",elapsedTime);
    imwrite(result_name, pano); [...]

And I have a two questions.

(1) Why it (different computation time) happened

(2) Is it possible to improve the speed?

PS: Unfortunately, I can't simply use true flag in Stitcher::createDefault, because my roi size is small (170x960), and as I know this is the issue for GPU SURF functions. But may be it's possible to use TBB or GPU in other sipmle steps (like cv::detail::BestOf2NearestMatcher)?

PPS: I'm, already tried to play with registrationResol, it helps a little, but not much.

Speedup stitching

Now for stitching 6 images (1280*960) I spend 5 - 10 seconds, each run different time.time. And when it tooks 10 secs I've got result.tif with size 158 bytes (header only?).

    [...] QueryPerformanceCounter(&t1);
    Stitcher stitcher = Stitcher::createDefault(false);
    Stitcher::Status status = stitcher.stitch(imgs, rois, pano);
    if (status != Stitcher::OK)
    {
        cout << "Can't stitch images, error code = " << status << endl;
        return -1;
    }
    QueryPerformanceCounter(&t2);
    elapsedTime = (t2.QuadPart - t1.QuadPart) * 1000.0 / frequency.QuadPart;
    printf("%.6f ms",elapsedTime);
    imwrite(result_name, pano); [...]

And I have a two questions.

(1) Why it (different computation time) happened

(2) Is it possible to improve the speed?

PS: Unfortunately, I can't simply use true flag in Stitcher::createDefault, because my roi size is small (170x960), and as I know this is the issue for GPU SURF functions. But may be it's possible to use TBB or GPU in other sipmle steps (like cv::detail::BestOf2NearestMatcher)?

PPS: I'm, already tried to play with registrationResol, it helps a little, but not much.

Speedup stitching

Now for stitching 6 images (1280*960) I spend 5 - 10 seconds, each run different time. And when it tooks 10 secs I've got result.tif with size 158 bytes (header only?).

 LARGE_INTEGER frequency;        // ticks per second
    LARGE_INTEGER t1, t2;           // ticks
    double elapsedTime;


    [...]  QueryPerformanceCounter(&t1);
    Stitcher stitcher = Stitcher::createDefault(false);
    Stitcher::Status status = stitcher.stitch(imgs, rois, pano);
    if (status != Stitcher::OK)
    {
        cout << "Can't stitch images, error code = " << status << endl;
        return -1;
    }
    QueryPerformanceCounter(&t2);
    elapsedTime = (t2.QuadPart - t1.QuadPart) * 1000.0 / frequency.QuadPart;
    printf("%.6f ms",elapsedTime);
    imwrite(result_name, pano); [...]

And I have a two questions.

(1) Why it (different computation time) happened

(2) Is it possible to improve the speed?

PS: Unfortunately, I can't simply use true flag in Stitcher::createDefault, because my roi size is small (170x960), and as I know this is the issue for GPU SURF functions. But may be it's possible to use TBB or GPU in other sipmle steps (like cv::detail::BestOf2NearestMatcher)?

PPS: I'm, already tried to play with registrationResol, it helps a little, but not much.