|
- /*use raw data to get image*/
- if (mvcam.GetImagePtr(outbuf, timestamp))
- {
- for (uint32_t i = 0; i < ctx.window_num; i++)
- {
- if (imgFmt == "YUYV")
- {
- imgbuf[i] = cv::Mat(imgHeight, imgWidth, CV_8UC2, outbuf[i]);
- cv::Mat mrgba(imgHeight, imgWidth, CV_8UC3);
- cv::cvtColor(imgbuf[i], mrgba, cv::COLOR_YUV2BGR_YUYV);
- cv::Mat cb_final;
- undistort(mrgba, cb_final, cameraMatrix, distCoeffs);
- }
- else if (imgFmt == "ABGR32")
- {
- imgbuf[i] = cv::Mat(imgHeight, imgWidth, CV_8UC4, outbuf[i]);
- cv::cvtColor(imgbuf[i], imgbuf[i], cv::COLOR_RGBA2BGR);
-
- cv::Mat cb_final;
- std::cout << "camera Matrix is " << cameraMatrix << std::endl;
- std::cout << "distCoeffs is " << distCoeffs << std::endl;
- cv::Size image_size = imgbuf[i].size();
- cv::Mat mapx = cv::Mat(image_size, CV_32FC1);
- cv::Mat mapy = cv::Mat(image_size, CV_32FC1);
- cv::Mat R = cv::Mat::eye(3, 3, CV_32F);
- cv::fisheye::initUndistortRectifyMap(cameraMatrix, distCoeffs, R,
- getOptimalNewCameraMatrix(cameraMatrix, distCoeffs, image_size, 1, image_size, 0), image_size, CV_32FC1, mapx, mapy);
- cv::remap(imgbuf[i], cb_final, mapx, mapy, cv::INTER_LINEAR);
- cv::imshow(windowName + std::to_string(i), cb_final);
- imgs.push_back(cb_final);
- }
- }
- //cv::Mat pano;
- //cv::Stitcher* stitcher = cv::Stitcher::create(cv::Stitcher::SCANS);
- //cv::Stitcher::Status status = stitcher->stitch(imgs, pano);//拼接
- //cv::namedWindow("拼接",0);
- //cv::imshow("拼接",pano);
- // std::cout << "Timestamp from GetImagePtr : " << timestamp << std::endl;
- }
复制代码
运行视频矫正还是正常的,执行到拼接就报错了。 |
|
共 3 个关于本帖的回复 最后回复于 2021-4-18 09:37