日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

影像畸变矫正带扭曲参数s(skew)像素比例ρ

發布時間:2024/5/14 编程问答 53 豆豆
生活随笔 收集整理的這篇文章主要介紹了 影像畸变矫正带扭曲参数s(skew)像素比例ρ 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

影像畸變矯正帶扭曲參數s(skew)像素比例ρ

OpenCV自帶糾正方法不能矯正扭曲參數s和ρ。因此自己寫代碼來完成糾正。包括OpenCV的畸變模型,和Smart3D的畸變模型,其原理見影像畸變糾正詳解
remap()不懂的可以看remap詳解

Mat src_cpu = imread(in_filename);cv::Mat mapx, mapy;mapx.create(src_cpu.size(), CV_32FC1);mapy.create(src_cpu.size(), CV_32FC1);float u0 = src_cpu.size().width / 2 + cx;float v0 = src_cpu.size().height / 2 + cy;double u0 = src_cpu.size().width / 2 + cx;double v0 = src_cpu.size().height / 2 + cy;double k1, k2, k3, p1, p2;// Smart3d model//k1 = distortionArr[0];//k2 = distortionArr[1];//k3 = distortionArr[2];//p1 = distortionArr[3];//p2 = distortionArr[4];//for (int i = 0; i<src_cpu.cols; ++i)// for (int j = 0; j < src_cpu.rows; ++j)// {// double x = (i - u0) / f, y = (j - v0) / f;// double x2 = x*x, y2 = y*y;// double r2 = x2 + y2, _2xy = 2 * x*y;// double kr = (1 + ((k3*r2 + k2)*r2 + k1)*r2);// double xd = (x*kr + p2*_2xy + p1*(r2 + 2 * x2));// double yd = (y*kr + p2*(r2 + 2 * y2) + p1*_2xy);// double u = f*xd + u0 + skew*yd;// double v = f*pixelRadio*yd + v0;// mapx.at<float>(j, i) = u;// mapy.at<float>(j, i) = v;// }// OpenCV modelk1 = distortionArr[0];k2 = distortionArr[1];p1 = distortionArr[2];p2 = distortionArr[3];k3 = distortionArr[4];for(int i = 0;i<src_cpu.cols;++i)for (int j = 0; j < src_cpu.rows; ++j){double x = (i-u0)/f, y = (j - v0) / f;double x2 = x*x, y2 = y*y;double r2 = x2 + y2, _2xy = 2 * x*y;double kr = (1 + ((k3*r2 + k2)*r2 + k1)*r2);double xd = (x*kr + p1*_2xy + p2*(r2 + 2 * x2));double yd = (y*kr + p1*(r2 + 2 * y2) + p2*_2xy);double u = f*xd + u0 + skew*yd;double v = f*pixelRadio*yd + v0;mapx.at<float>(j, i) = u;mapy.at<float>(j, i) = v;}// GPU versioncv::cuda::GpuMat src(src_cpu);cv::cuda::GpuMat distortion(src.size(), src.type());cv::Mat result;::cv::cuda::GpuMat m_mapx;::cv::cuda::GpuMat m_mapy;m_mapx = ::cv::cuda::GpuMat(mapx);m_mapy = ::cv::cuda::GpuMat(mapy);::cv::cuda::remap(src, distortion, m_mapx, m_mapy, INTER_LINEAR);distortion.download(result);imshow("img", src_cpu);imshow("undistort", result);waitKey(0);

總結

以上是生活随笔為你收集整理的影像畸变矫正带扭曲参数s(skew)像素比例ρ的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。