图像畸变矫正 matlab,关于opencv图像畸变矫正
本文通过摄像头参数(fx,fy,cx,cy,k1,k2,p1,p2,p3(标定得到))去矫正摄像头拍出来的图像畸变详细代码在底部
首先
这里我们先介绍两个函数:他们都可以用来矫正畸变,但是一个是输入是Mat型,一个输入是IplImage* 型
本文用Mat格式读取图像,故采用第一个函数。
undistort() //用于Mat图像
cvUndistort() //用于 IplImage* 图像
其次
标定一下摄像头,得到参数矩阵。(我用matlab标定工具箱搞出来的~)
Matlab2019 标定工具箱结果
再次
这里通过paramtersInit()将参数转换为系数阵
然后传入到undistort里面去,这就结束了~
效果
畸变矫正前/后
代码
```
#include
#include
#include
#include
using namespace cv;
using namespace std;
Mat matrix;
Mat coeff;
Mat new_matrix;
double fx = 682.421509, fy = 682.421509, cx = 633.947449, cy = 404.559906;
double k1k2Distortion[2] = {-0.15656,-0.00404};
double p1p2p3Distortion[3] = {-0.00078,-0.00048,0.00000};
using namespace cv;
using namespace std;
void paramtersInit();//将参数转换为系数阵
int main()
{
cv::Mat srcMat, dstMat;
paramtersInit();
srcMat = imread("img.jpg");
undistort(srcMat, dstMat, matrix, coeff, new_matrix);
imwrite("undistortImg.png", dstMat);
imshow("front", srcMat);
imshow("after",dstMat);
waitKey(0);
system("pause");
return 0;
}
void paramtersInit()
{
matrix = Mat(3, 3, CV_64F);
matrix.at(0, 0) = fx;
matrix.at(0, 1) = 0;
matrix.at(0, 2) = cx;
matrix.at(1, 0) = 0;
matrix.at(1, 1) = fy;
matrix.at(1, 2) = cy;
matrix.at(2, 0) = 0;
matrix.at(2, 1) = 0;
matrix.at(2, 2) = 1;
coeff = Mat(1, 4, CV_64F);
coeff.at(0, 0) = k1k2Distortion[0];
coeff.at(0, 1) = k1k2Distortion[1];
coeff.at(0, 2) = p1p2p3Distortion[0];
coeff.at(0, 3) = p1p2p3Distortion[1];
}
```
图像畸变矫正 matlab,关于opencv图像畸变矫正相关推荐
- 图像旋转的MATLAB和OpenCV源码
图像处理开发需求.图像处理接私活挣零花钱,请加微信/QQ 2487872782 图像处理开发资料.图像处理技术交流请加QQ群,群号 271891601 源码中用到的lena.jpg.lena_gray ...
- 图像转置的MATLAB和OpenCV源码
图像处理开发需求.图像处理接私活挣零花钱,请加微信/QQ 2487872782 图像处理开发资料.图像处理技术交流请加QQ群,群号 271891601 注意,图像转置和图像旋转是两回事,图像转置只是把 ...
- matlab 三维图像配准,[转载]Matlab实现多种图像配准(转)
本文讲述如何利用Matlab Image Processing Toolbox中的图像配准工具实现线性正投影.仿射.投影.多项式.分段线性.局部加权平均配准的过程. 实验平台 X86 PC,Windo ...
- 利用python对图像进行傅里叶变换_python用opencv 图像傅里叶变换
傅里叶变换 dft = cv.dft(np.float32(img),flags = cv.DFT_COMPLEX_OUTPUT) 傅里叶逆变换 img_back = cv.idft(f_ishift ...
- 多图像平均法去噪MATLAB,关于多图像平均法降噪问题的全面分析 - 全文
在实际获取和传输图像的过程往往会发生图像失真,所得到图像和原始图像有某种程度的差别.这些都是因为有外界的噪声加入到图像中,因此在对采集到的图像进行处理前,需要先对图像进行预处理,就是要对噪声图像进 行 ...
- C/C++实现双目矫正(不使用OpenCV内部函数)及矫正源码解析
C/CPP实现双目矫正(不使用OpenCV)及矫正源码解析 这篇文章是之前[要matlab标定数据做双目相机矫正OpenCV C++]的补充,再加上了双目矫正的原理及代码注释.更新中-- 本文所需数据 ...
- matlab dicom图像异常,用Matlab处理Dicom图像
最近在处理CT图像时,CT图像是对人体进行逐层扫描的,在图像有很多不需要的部分,比如肋骨部分就夹杂在里面,导致三维重建出来的图像有很多不需要的部分.很不好处理. 于是,我就想了了简单方法,对一张一张的 ...
- matlab给图像加云,matlab怎么给图像加雾
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 % -------------------------------------------------------------------- % 雾化处理 ...
- 红外非均匀矫正matlab实现,红外图像非均匀矫正——两点矫正
红外芯片由于工艺问题存在严重的分均匀性,所以非均匀矫正一直是影响红外图像质量的第一因素.分均匀矫正的算法也是红外图像处理研究的重点区域,建立了一些矫正的方式方法.其中最常用最简单的就应该算是两点温度定 ...
最新文章
- [BZOJ1355][Baltic2009]Radio Transmission
- Phpstorm数组对齐设置
- ghelper怎么在手机上用_当长时间不用手机玩《崩坏3》、《战双》
- python实现线性回归预测不用sklearn库_python – 为什么我的自定义线性回归模型不匹配sklearn?...
- Linux系统编程28:进程间通信之共享内存和相关通信接口(ftok,shmget,shmctl,shmat,shmdt)
- 漫画:唐玄奘教你横扫 AVL 树面试题无敌手!
- contiki makefile框架分析 contiki学习之一
- ubuntu下jmxtrans 安装
- 安装完 SQL Server 2008 后没有 SQL Server Management Studio
- 大规模额外涨薪后,Intel又准备了24亿美元,明年再涨工资!
- 记录蓝屏问题FAULTY_HARDWARE_CORRUPTED_PAGE
- JavaEE中的网络基础知识和网络通信基础
- 一张纸厚度是多少毫米_一张A4纸的厚度是多少mm?
- 群晖搭建discuz论坛
- H3CNE考试模拟试题
- JavaScript 实现网页截屏五种方法
- 融合注意力机制和Bi-LSTM的旅游评价情感分析模型
- PhpSpreadsheet导入
- 谈 Linux,Windows 和 Mac -王银纠正对linux的看法
- 代码坏味道与重构之霰弹式修改和依恋情结