CUDA加速cloud compare高度渲染算法

一、CPU版本

算法为一个for循环内,将高度信息,映射到彩色空间,比较耗时的是正弦运算,还执行了多次乘除法,当图像大小为2038*4000时,处理耗时为170ms。

原算法是处理点云,这里是输入一张深度图像,数据类型为int

void setRGBColorByBanding(cv::Mat* src, cv::Mat* dst, float freq = 10.0f) {
    cv::TickMeter st;
    st.start();
    const float M_PI = 3.1415926;
    float bands = (2.0 * M_PI) / freq;
    size_t count = src->cols * src->rows;
    int* uptr = (int*)src->data;
    typedef unsigned char ColorCompType;
    const unsigned char ColorMAX = 255;
    cv::Mat rgb(src->rows, src->cols, CV_8UC3);
    cv::Vec3b* dst_ptr = (cv::Vec3b*)rgb.data;
    for (unsigned i = 0; i < count; i++)
    {
       float P = *(uptr + i) ;
        
       float z = bands * P;

       ColorCompType r = static_cast(((sin(z + 0.0f) + 1.0f) / 2.0f) * ColorMAX);
       ColorCompType g = stat

你可能感兴趣的:(图像加速,OpenCV,CUDA,opencv,算法,计算机视觉)