/** * Minimal GPUStereo example — disparity from a stereo camera pair (RVC4 only). */ #include #include #include int main() { std::shared_ptr device = std::make_shared(); if(!device->isGpuStereoSupported()) { std::cout << "Exiting GPUStereo example: GPUStereo is not supported on this device.\n"; return 0; } dai::Pipeline pipeline(device); auto camLeft = pipeline.create(); auto camRight = pipeline.create(); camLeft->build(dai::CameraBoardSocket::CAM_B); camRight->build(dai::CameraBoardSocket::CAM_C); auto gpu = pipeline.create(); camLeft->requestFullResolutionOutput()->link(gpu->left); camRight->requestFullResolutionOutput()->link(gpu->right); gpu->initialConfig->setConfidenceThreshold(25); auto dispQ = gpu->disparity.createOutputQueue(); pipeline.start(); while(pipeline.isRunning()) { auto frame = dispQ->get(); cv::Mat disp(frame->getHeight(), frame->getWidth(), CV_16UC1, frame->getData().data()); cv::Mat dispF; disp.convertTo(dispF, CV_32F); cv::Mat disp8; cv::normalize(dispF, disp8, 0, 255, cv::NORM_MINMAX, CV_8U); cv::Mat dispColor; cv::applyColorMap(disp8, dispColor, cv::COLORMAP_JET); cv::imshow("GPUStereo Disparity", dispColor); if(cv::waitKey(1) == 'q') break; } return 0; }