OpenCV 获取变换矩阵
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 获取变换矩阵相关推荐
- Python 把OpenCV 获取的图像传递到C
Python 把OpenCV 获取的图像传递到C 2016年10月11日 14:47:49 阅读数:1946 用OpenCV Python来开发,如果想要用到一些C/C++的图像处理库,就需要创建Py ...
- opencv获取摄像头帧率分辨率
python opencv 获取摄像头分辨率,设置摄像头分辨率 import cv2cap = cv2.VideoCapture(0)#先设置参数,然后读取参数cap.set(3,1280) # wi ...
- python+opencv获取最小外接矩形
python+opencv获取最小外接矩形 环境 代码 效果 环境 python版本:3.8 opencv版本:4.3.0.36 代码 from PIL import Image from pylab ...
- 使用Python,OpenCV获取、更改像素,修改图像通道,剪裁ROI
使用Python,OpenCV获取.更改像素,修改图像通道,剪裁ROI 1. 效果图 2. 源码 参考 这篇博客将介绍使用Python,OpenCV获取.更改像素,修改图像通道,截取图像感兴趣ROI: ...
- Realsense D435i +Opencv 获取彩色、深度、IMU数据并对齐
Realsense D435i +Opencv 获取彩色.深度.IMU数据并对齐 前言 源码 CMakeLists.txt 效果 参考 前言 参考realsense官方文档和各位大佬的博客,在Ubun ...
- ubuntu18.04 opencv 获取摄像头 (C++/python) 双目摄像头
ubuntu18.04 opencv 获取摄像头 (C++/python) 第一版: // g++ opencv-camera.cpp -o a.out `pkg-config --cflags -- ...
- OpenCV 获取摄像头并显示摄像头视频
OpenCV 获取摄像头,新建窗口显示摄像头视频 结合Leaning OpenCV 第二个例子 显示一个视屏文件 写了一下 获取摄像头的代码为并且创建窗口显示的代码为: #include " ...
- C#通过OpenCv获取网络摄像头(IP摄像头)拍摄到的视频
@TOC 本文介绍 本文介绍利用C#获取IP摄像头拍摄到的实时视频 说在前面 首先需要一台支持rtsp协议的网络摄像头(购买的时候会有说明,或者问客服) 环境:visual studio 2017 网 ...
- 使用手机摄像头做网络ip摄像头 并用opencv获取rtsp视频流
目录 前言 准备工作 DroidCam使用方法 IP摄像头使用方法 使用opencv调用摄像头 前言 最近要做一个和图像有关的项目,需要获取热成像摄像头的输入进行处理,最终调研找到了一款网络摄像机.苦 ...
最新文章
- 我的pygraphviz安装之路
- centos7.0改变用户创建目录组权限
- 用python的matplotlib画标准正态曲线
- 什么是Tomcat响应静态资源?
- HDU - 5017 Ellipsoid(三分套三分/模拟退火)
- php怎么样sphinx,php使用sphinx
- PHP--session
- bzoj3144 [Hnoi2013]切糕
- 地表温度数据、LST温度数据、地表反照率、NDVI数据、NPP数据、植被覆盖度、土地利用数据
- hive sql 13位毫秒时间戳转日期
- 空洞卷积(Dilated Convolution)简介
- OA系统权限分派实施方案
- 【luogu/字符串】多项式输出(所有情况一起处理)
- 屏幕缩放和注释工具(ZoomIt)
- java多数据库开发evn,Java,在多线程evnironments中通过散列统一划分传入的工作
- 合并两个有序数组(给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。)
- 教你发布Silverlight Bussiness Application(SQL Server 登录,局域网访问,以及使用ArcGIS Server服务需要注意的问题)...
- 数据分析之数理统计基础
- C# 景深融合软件(opencvsharp开源库)
- 【李佳辉_周报_2022.10.30】