1. 通过点和角度,获取仿射变换矩阵,进而获取矩阵变换后的图像

Mat dstImage;
Mat affine_matrix = getRotationMatrix2D(center, angle, 1.0);
warpAffine(img, dstImage, affine_matrix, img.size());

2. 通过两个点集,获取透视变换矩阵。

//初始点集的获取方式有很多种,这里是通过minAreaRect()获取的RotatedRect的四个点
Point2f vertex[4];
RotatedRect rotatedRect = minAreaRect(contours[i]);
irotatedRect.points(vertex);//通过冒泡程序给输入点集排序
//结果为:1---------2
//       |         |
//       |         |
//       |         |
//       4---------3
for (int i = 0; i < 4; i++)
{for (int j = i + 1; j < 4; j++){if (vertex[i].y > vertex[j].y){swap(vertex[i], vertex[j]);}}
}
if (vertex[0].x > vertex[1].x)
{swap(vertex[0], vertex[1]);
}if (vertex[2].x < vertex[3].x)
{swap(vertex[2], vertex[3]);
}//目标点集设为最小外接矩形的大小
Point2f dstVertex[4];
dstVertex[0] = Point2f(0, 0);
dstVertex[1] = Point2f(rotatedRect .size.width, 0);
dstVertex[2] = Point2f(rotatedRect .size.width, rotatedRect .size.height);
dstVertex[3] = Point2f(0, rotatedRect .size.height);//透视变换矩阵
Mat perspective_matrix = getPerspectiveTransform(vertex, dstVertex);//获得透视变换后的图像
Mat dstMat = Mat::zeros(rotatedRect.size.height, rotatedRect.size.width, srcMat.type());
warpPerspective(srcMat, dstMat , perspective_matrix , dstMat .size());

此方法获取的透视变换图像效果为:

OpenCV 获取变换矩阵相关推荐

  1. Python 把OpenCV 获取的图像传递到C

    Python 把OpenCV 获取的图像传递到C 2016年10月11日 14:47:49 阅读数:1946 用OpenCV Python来开发,如果想要用到一些C/C++的图像处理库,就需要创建Py ...

  2. opencv获取摄像头帧率分辨率

    python opencv 获取摄像头分辨率,设置摄像头分辨率 import cv2cap = cv2.VideoCapture(0)#先设置参数,然后读取参数cap.set(3,1280) # wi ...

  3. python+opencv获取最小外接矩形

    python+opencv获取最小外接矩形 环境 代码 效果 环境 python版本:3.8 opencv版本:4.3.0.36 代码 from PIL import Image from pylab ...

  4. 使用Python,OpenCV获取、更改像素,修改图像通道,剪裁ROI

    使用Python,OpenCV获取.更改像素,修改图像通道,剪裁ROI 1. 效果图 2. 源码 参考 这篇博客将介绍使用Python,OpenCV获取.更改像素,修改图像通道,截取图像感兴趣ROI: ...

  5. Realsense D435i +Opencv 获取彩色、深度、IMU数据并对齐

    Realsense D435i +Opencv 获取彩色.深度.IMU数据并对齐 前言 源码 CMakeLists.txt 效果 参考 前言 参考realsense官方文档和各位大佬的博客,在Ubun ...

  6. ubuntu18.04 opencv 获取摄像头 (C++/python) 双目摄像头

    ubuntu18.04 opencv 获取摄像头 (C++/python) 第一版: // g++ opencv-camera.cpp -o a.out `pkg-config --cflags -- ...

  7. OpenCV 获取摄像头并显示摄像头视频

    OpenCV 获取摄像头,新建窗口显示摄像头视频 结合Leaning OpenCV 第二个例子 显示一个视屏文件  写了一下 获取摄像头的代码为并且创建窗口显示的代码为: #include " ...

  8. C#通过OpenCv获取网络摄像头(IP摄像头)拍摄到的视频

    @TOC 本文介绍 本文介绍利用C#获取IP摄像头拍摄到的实时视频 说在前面 首先需要一台支持rtsp协议的网络摄像头(购买的时候会有说明,或者问客服) 环境:visual studio 2017 网 ...

  9. 使用手机摄像头做网络ip摄像头 并用opencv获取rtsp视频流

    目录 前言 准备工作 DroidCam使用方法 IP摄像头使用方法 使用opencv调用摄像头 前言 最近要做一个和图像有关的项目,需要获取热成像摄像头的输入进行处理,最终调研找到了一款网络摄像机.苦 ...

最新文章

  1. 我的pygraphviz安装之路
  2. centos7.0改变用户创建目录组权限
  3. 用python的matplotlib画标准正态曲线
  4. 什么是Tomcat响应静态资源?
  5. HDU - 5017 Ellipsoid(三分套三分/模拟退火)
  6. php怎么样sphinx,php使用sphinx
  7. PHP--session
  8. bzoj3144 [Hnoi2013]切糕
  9. 地表温度数据、LST温度数据、地表反照率、NDVI数据、NPP数据、植被覆盖度、土地利用数据
  10. hive sql 13位毫秒时间戳转日期
  11. 空洞卷积(Dilated Convolution)简介
  12. OA系统权限分派实施方案
  13. 【luogu/字符串】多项式输出(所有情况一起处理)
  14. 屏幕缩放和注释工具(ZoomIt)
  15. java多数据库开发evn,Java,在多线程evnironments中通过散列统一划分传入的工作
  16. 合并两个有序数组(给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。)
  17. 教你发布Silverlight Bussiness Application(SQL Server 登录,局域网访问,以及使用ArcGIS Server服务需要注意的问题)...
  18. 数据分析之数理统计基础
  19. C# 景深融合软件(opencvsharp开源库)
  20. 【李佳辉_周报_2022.10.30】

热门文章

  1. 等额本息还款方式的年利率计算方法及java代码实现
  2. RegularExpressionValidator 控件
  3. Qt入门学习——Qt Creator的使用
  4. SOLIDWORKS工程图导出DWG图纸时字体处理方法
  5. python分别统计男女人数_python实现爬虫统计学校BBS男女比例(一),python男女比例...
  6. 你不可不知的网站:stackoverflow
  7. Python时间序列中ADF检验详解
  8. STC89C52:快速搭建与IO
  9. Jstorm 基本概念
  10. mpvue从入门到精通(一)