OpenCV——透视变换
透视变换是按照物体成像投影规律进行变换,即将物体重新投影到新的成像平面,示意图如图所示。透视变换常用于机器人视觉导航研究中,由于相机视场与地面存在倾斜角使得物体成像产生畸变,通常通过透视变换实现对物体图像的校正。透视变换中,透视前的图像和透视后的图像之间的变换关系可以用一个3×3的变换矩阵表示,该矩阵可以通过两张图像中四个对应点的坐标求取,因此透视变换又称作“四点变换”。
根据四个对应点求取变换矩阵的getPerspectiveTransform()函数和进行透视变换的warpPerspective()函数
Mat getPerspectiveTransform( const Point2f src[], const Point2f dst[] );
void warpPerspective( InputArray src, OutputArray dst,InputArray M, Size dsize,int flags = INTER_LINEAR,int borderMode = BORDER_CONSTANT,const Scalar& borderValue = Scalar());
- src:输入图像。
- dst:透视变换后输出图像,与src数据类型相同,但是尺寸与dsize相同。
- M:3×3的变换矩阵。
- dsize:输出图像的尺寸。
- flags:插值方法标志。
- borderMode:像素边界外推方法的标志。
- borderValue:填充边界使用的数值,默认情况下为0
简答示例:
//
// Created by smallflyfly on 2021/6/10.
//#include "opencv2/opencv.hpp"
#include "opencv2/highgui.hpp"#include <iostream>using namespace cv;
using namespace std;int main() {Mat im = imread("test.jpg");Point2f srcPoints[4];Point2f dstPoints[4];srcPoints[0] = Point2f(20, 30);srcPoints[1] = Point2f(50, 100);srcPoints[2] = Point2f(200, 400);srcPoints[3] = Point2f(500, 800);dstPoints[0] = Point2f(45, 120);dstPoints[1] = Point2f(80, 250);dstPoints[2] = Point2f(300, 500);dstPoints[3] = Point2f(600, 600);Mat r, warp;r = getPerspectiveTransform(srcPoints, dstPoints);warpPerspective(im, warp, r, im.size());imshow("warp", warp);waitKey(0);destroyAllWindows();return 0;}
OpenCV——透视变换相关推荐
- OpenCV透视变换应用于图像的实例(附完整代码)
OpenCV透视变换应用于图像的实例 OpenCV透视变换应用于图像的实例 OpenCV透视变换应用于图像的实例 #include "opencv2/imgproc.hpp" #i ...
- OpenCV透视变换应用于图像的实例(附完整源代码)
OpenCV透视变换应用于图像的实例 透视变换应用于图像的实例完整源代码 透视变换应用于图像的实例完整源代码 #include "opencv2/imgproc.hpp" #inc ...
- 详解 OpenCV 透视变换原理 及 实例
OpenCV提供了两种图片变换的方式:仿射变换和透视变换,两者的区别很容易区分, 前者是将矩形的图片变成平行四边形 后者是将图片变成梯形 这两种变换虽然都有各自的应用场景,但在实际的图片变换中由于透视 ...
- 使用OpenCV透视变换技术实现坐标变换实践
1. 概述 1.1. 需求 在局部空间(无GPS定位)视频监控过程中,把视频识别到物体位置,投射到空间平面坐标系中,获取物体在局部空间的平面坐标. 1.2. 解决方案 使用图像透视变换技术. 1.3. ...
- OpenCV 透视变换 图像拼接
A:OpenCV 透视变换 一:OpenCV透视变换的概念 仿射变换(affine transform)与透视变换(perspective transform)在图像还原.图像局部变化处理方面有重要意 ...
- opencv透视变换:GetPerspectiveTransform、warpPerspective函数的使用
透视变换在图像还原的上的应用很广泛,他是将成像投影到一个新的视平面.比如两个摄像头在不同的角度对统一物体进行拍照,物体上的同一个点在两张照片上的坐标是不一样的,为了实现两张图片同一个点的对应关系映射, ...
- C++ OpenCV透视变换综合练习
学更好的别人, 做更好的自己. --<微卡智享> 本文长度为3879字,预计阅读9分钟 前言 以前的文章<C++ OpenCV之透视变换>介绍过透视变换,当时主要是自己固定的变 ...
- OpenCV透视变换示例
公众号推送看到的 由于深度学习平时训练的是pytorch框架的东西 传统opencv处理图像用的非常少 温故而知新 示例入下图 把这本书矫正 做法是 先缩小图二分之一,高斯模糊+边缘检测+膨胀 去噪 ...
- python opencv 透视变换
可以缩小,不能放大: 只需要4个点坐标就可以了. # -*- coding: utf-8 -*- import os import numpy as np import cv2list_path = ...
最新文章
- linux webservice服务器端,Linux查看资源使用情况 webservice服务端口监控
- 关于架构的一点思考(一)
- COGS-363-土地购买-斜率优化
- DynamicDataDisplay 实时曲线图的使用和沿轴移动的效果
- linux lighttpd php,Ubuntu下搭建Lighttpd+PHP+MySQL环境
- matplotlib设置画布大小_PyTorch 49.matplotlib模块
- 【蓝桥杯单片机】DS1302时钟芯片+DS18B20单总线温度传感器(官方驱动源码改写)
- python的for语句要用冒号吗_python中循环的写法 for
- 余额宝技术架构及演进
- linux中fb0和fb1同时显示数据,Linux frame buffer驱动设计与实现
- selenium python自动化测试框架_基于Selenium+Python的web自动化测试框架
- HTML转义字符表的使用
- arm-linux-gcc 64位下载,arm-linux-gcc下载与安装
- 1416711-60-8,DBCO-PEG4-Hydroxyl,DBCO-PEG4-alcohol,DBCO-PEG4-OH含有DBCO部分和末端伯羟基的PEG连接剂
- AVD Android虚拟设备root教程
- 申请美国商务签证(B1/B2) -- 大连
- (1)简单易学—— 人脸检测 Tensorflow_MTCNN模型训练详细步骤(纯干货,适用于windows和ubuntu系统)
- CC00027.hadoop——|HadoopHive.V27|——|Hive.v27|Hive优化策略|实战.v03|
- 分支语句和循环语句<小罗爱学c语言>
- FreeBSD中安装源的方法
热门文章
- Errors while compiling. Reload prevented.
- 声明:博客内容不得用于商业用途,仅做学习交流。
- 【二分图匹配】【CSTC2000】丘比特的烦恼
- 第844期机器学习日报(2017-01-09)
- 连手机热点宿主机无法连上VMvare linux Centos
- 一则“孔乙己文学”,刺痛了多少学子的心?
- KOOCAN非正常电影排行榜之这个丧尸不太冷
- 优秀架构师必须掌握的架构思维 - 菜鸟架构(转载)
- 015. P2P技术详解(一):NAT详解——详细原理、P2P简介
- react native的WebView报错: Unable to open URL:****