每像素查找表

问题描述 投票:0回答:1

我想知道是否还有另一种方法可以在Opencv中创建每个像素的查找表。我现在对小分辨率(每秒约4帧)可以正常工作,但在高分辨率(每秒不到1帧)上却很慢。

我已阅读到可以使用CUDA,但不知道如何使用它。如果这是唯一的方法,那么有人可以指出正确的方向吗?谢谢。

In header file:
    Mat_<Vec<uchar,256>> _GB;
    Mat_<Vec<uchar,256>> _GG;
    Mat_<Vec<uchar,256>> _GR;
…
Mat VideoProcessor::CamCalib(Mat _tempFrame)
{

    Mat_<Vec3b> _frame = _tempFrame;

    for( int i = 0; i < _tempFrame.rows; ++i)
        for( int j = 0; j < _tempFrame.cols; ++j )
        {
            _frame(i,j)[0] = _GB(i,j)[ _frame(i,j)[0] ];
            _frame(i,j)[1] = _GG(i,j)[ _frame(i,j)[1] ];
            _frame(i,j)[2] = _GR(i,j)[ _frame(i,j)[2] ];
        }

    _tempFrame = _frame;

    return _tempFrame;
}

c++ algorithm performance opencv lookup
1个回答
0
投票

感谢杰罗姆,我听了你的建议。一个简单的实现,性能提高了25%。对我来说,由于我正在使用软件镜头校正来进行实时图像捕获,因此内存不如速度那样昂贵。

所以这就是我添加的内容:

已添加到Pro文件中:QMAKE_CXXFLAGS + = -openmp

在CPP文件中添加:#include“ omp.h”...并在方法中的“ for循环”之前添加:#pragma omp parallel for

© www.soinside.com 2019 - 2024. All rights reserved.