opencv2413 透视变换
2016-10-24 16:07
225 查看
因为项目需要,开始接触透视变换的原理和实现。请注意透视变换与仿射变换的区别。
其核心思想是:找到原图像中的四个点,确定变换之后的四个点位置,分别对应,然后调用函数,计算出透视变换的4*4矩阵。最后,利用得到的透视变换矩阵,根据原图像,即可计算出变换之后的图像。
话不多说,先上一些代码。
开发环境opencv2413+vs2013
效果如下图所示
详细透视变换示例代码和源图片下载
其核心思想是:找到原图像中的四个点,确定变换之后的四个点位置,分别对应,然后调用函数,计算出透视变换的4*4矩阵。最后,利用得到的透视变换矩阵,根据原图像,即可计算出变换之后的图像。
话不多说,先上一些代码。
开发环境opencv2413+vs2013
cv::Mat quad = cv::Mat::zeros(300, 220, CV_8UC3);//目标图像的大小 std::vector<cv::Point2f> quad_pts;//目标图像的四个顶点 quad_pts.push_back(cv::Point2f(0, 0)); quad_pts.push_back(cv::Point2f(quad.cols, 0)); quad_pts.push_back(cv::Point2f(quad.cols, quad.rows)); quad_pts.push_back(cv::Point2f(0, quad.rows)); cv::Mat transmtx = cv::getPerspectiveTransform(corners, quad_pts);//计算得到透视变换矩阵 cv::warpPerspective(src, quad, transmtx, quad.size());//根据透视变换,矫正图像
效果如下图所示
详细透视变换示例代码和源图片下载
相关文章推荐
- 【OpenCV3】透视变换——cv::getPerspectiveTransform()与cv::warpPerspective()详解
- Opencv学习——仿射变换和透视变换
- OpenCV 透视变换实例
- 基于Opencv3.0对图像进行透视变换
- opencv2413+VS2013静态编译
- opencv仿射变换、透视变换
- opencv透视变换
- 【OpenCV3.3】通过透视变换矫正变形图像
- 【学习opencv】透视变换 Perspective Transformation
- opencv3/C++ 平面对象识别&透视变换
- 【OpenCV】之find_obj基础上的局部图像透视变换
- 【OpenCV】图像变换(五)-仿射变换和透视变换
- OpenCV中透视变换学习
- Opencv学习笔记——透视变换
- 【OpenCV】透视变换 Perspective Transformation(续)
- OpenCV中二维点求取进行仿射和透视变换之后的坐标点方法
- opencv 透视变换
- OpenCV 透视变换
- 【OpenCV】图像变换(五)-仿射变换和透视变换
- opencv-ios开发笔记9 使用透视变换矫正扭曲的图片