QFuture<void> futBottom = QtConcurrent::run([&]{ // 底部圆弧部分 0 - 550 Eigen::Tensor<uint8_t, 3, Eigen::RowMajor> data_crop_bottom = tensor_map.slice( Eigen::array<Eigen::DenseIndex, 3>{0, 0, 0}, Eigen::array<Eigen::DenseIndex, 3>{dimx, dimy, 550}); auto databottom = map_data(data_crop_bottom, 2); QImage img(databottom.data(), databottom.dimension(1), databottom.dimension(0), QImage::Format_Grayscale8); img.detach(); results[1] = img; results[1].detach(); });
时间: 2024-04-27 16:23:32 浏览: 163
直接稀疏里程表-C/C++开发
这段代码使用了QtConcurrent库中的QtConcurrent::run函数,该函数会在另一个线程中执行传递的函数对象。在这个例子中,传递了一个lambda表达式,该表达式包含了对一个三维张量进行切片,将其转化为QImage对象并存储在results[1]中的操作。这个lambda表达式在一个新的线程中运行,不会影响主线程的执行。当这个线程执行完成后,可以通过futBottom对象来判断是否执行完成。
阅读全文