opencv 仿射变换 计算旋转矩阵源码分析
2013-08-23 10:01
513 查看
在使用opencv进行仿射变换的时候,会先计算一个放射变换矩阵,获取放射变换矩阵的函数原型:
这个函数的实现为:
上面的函数中,主要的功能函数是:
首先将角度转换为了弧度,然后计算旋转矩阵。
/* Computes rotation_matrix matrix */ CVAPI(CvMat*) cv2DRotationMatrix( CvPoint2D32f center, double angle, double scale, CvMat* map_matrix );
这个函数的实现为:
CV_IMPL CvMat* cv2DRotationMatrix( CvPoint2D32f center, double angle, double scale, CvMat* matrix ) { cv::Mat M0 = cv::cvarrToMat(matrix), M = cv::getRotationMatrix2D(center, angle, scale); CV_Assert( M.size() == M.size() ); M.convertTo(M0, M0.type()); return matrix; }
上面的函数中,主要的功能函数是:
cv::Mat cv::getRotationMatrix2D( Point2f center, double angle, double scale ) { angle *= CV_PI/180; double alpha = cos(angle)*scale; double beta = sin(angle)*scale; Mat M(2, 3, CV_64F); double* m = (double*)M.data; m[0] = alpha; m[1] = beta; m[2] = (1-alpha)*center.x - beta*center.y; m[3] = -beta; m[4] = alpha; m[5] = beta*center.x + (1-alpha)*center.y; return M; }
首先将角度转换为了弧度,然后计算旋转矩阵。
相关文章推荐
- opencv 仿射变换 计算旋转矩阵源码分析
- Opencv2.4.9源码分析——Stitching(五)
- SIFT算法原理与OpenCV源码分析5:关键点描述
- g723源码详细分析-8-计算冲激响应与振铃减法
- 贝叶斯(朴素贝叶斯,正太贝叶斯)及OpenCV源码分析
- opencv Ptr源码分析
- 【OpenCV】SIFT原理与源码分析:DoG尺度空间构造
- Giraph源码分析(八)—— 统计每个SuperStep中参与计算的顶点数目
- OpenCV SIFT原理与源码分析
- Opencv2.4.9源码分析——Random Trees
- Opencv2.4.9源码分析——Neural Networks
- Opencv2.4.9源码分析——Stitching(八)
- opencv源码分析:cvCreateMTStumpClassifier最优弱分类器的代码框架
- Opencv2.4.9源码分析——Stitching(三)
- Opencv2.4.9源码分析——Stitching(九)
- 【OpenCV图像处理入门学习教程一】OpenCV2 + 3的安装教程与VS2013的开发环境配置 + JPEG压缩源码分析与取反运算修改
- 【OpenCV】SIFT原理与源码分析:DoG尺度空间构造
- 【OpenCV】SIFT原理与源码分析
- Opencv2.4.9源码分析要点摘录
- 【OpenCV】SIFT原理与源码分析:DoG尺度空间构造