对于透视变换,必须为map_matrix分配一个3x3数组,除了3x3矩阵和三个控点变为四个控点外,透视变化在其他方面与仿射变换完全类似。具体可以参考:点击打开链接

主要用到两个函数WarpPerspective和GetPerspectiveTransform。

1)WarpPerspective

对图像进行透视变换

void cvWarpPerspective( const CvArr* src, CvArr* dst,const CvMat* map_matrix,

int flags=CV_INTER_LINEAR+CV_WARP_FILL_OUTLIERS,

CvScalar fillval=cvScalarAll(0) );

src

输入图像.

dst

输出图像.

map_matrix

3×3 变换矩阵

flags

插值方法和以下开关选项的组合:

·       CV_WARP_FILL_OUTLIERS- 填充所有缩小图像的象素。如果部分象素落在输入图像的边界外,那么它们的值设定为 fillval.

·       CV_WARP_INVERSE_MAP- 指定 matrix 是输出图像到输入图像的反变换,因此可以直接用来做象素插值。否则, 函数从 map_matrix 得到反变换。

fillval

用来填充边界外面的值

函数 cvWarpPerspective 利用下面指定矩阵变换输入图像:

  • 如果没有指定 CV_WARP_INVERSE_MAP , 
  • 否则, 

要变换稀疏矩阵,使用 cxcore 中的函数 cvTransform 。

2)GetPerspectiveTransform

由四对点计算透射变换

CvMat* cvGetPerspectiveTransform( const CvPoint2D32f*src, const CvPoint2D32f* dst,

CvMat*map_matrix );

#define cvWarpPerspectiveQMatrixcvGetPerspectiveTransform

src

输入图像的四边形顶点坐标。

dst

输出图像的相应的四边形顶点坐标。

map_matrix

指向3×3输出矩阵的指针。

函数cvGetPerspectiveTransform计算满足以下关系的透射变换矩阵:

这里,dst(i)= (x'i,y'i),src(i)= (xi,yi),i = 0..3.

最新文章

  1. Winform开发框架之参数配置管理功能实现-基于SettingsProvider.net的构建
  2. 基于.net开发chrome核心浏览器【六】
  3. window使用qt遇到的坑
  4. CocoaPods安装和使用教程(转摘)
  5. iOS开发多线程篇—自定义NSOperation
  6. window.location 对象所包含的属性
  7. CSDN-markdown语法之怎样使用LaTeX语法编写数学公式
  8. 聪明的质监员[NOIP2011]
  9. Eclipse字体颜色的设置方法
  10. python基础教程(二)
  11. BZOJ_1031_[JSOI2007]字符加密Cipher_后缀数组
  12. Django2.1配置xadmin2.0
  13. 自学自用 = B站(操作系统_清华大学(向勇、陈渝)) 未完待续。。
  14. TCP/IP 和 HTTP 的区别和联系是什么?
  15. 每天一个linux命令(13):less命令
  16. oracle 序列sequence
  17. Execl矩阵如何转化成Pajek的net文件
  18. jdk1.8以前不建议使用其自带的Base64来加解密
  19. Golang 并发Groutine实例解读(二)
  20. [iOS]异常捕捉

热门文章

  1. 【MySQL 数据库】MySQL目录
  2. 记录一下自己申请并使用VPS的全过程
  3. 论文笔记:Visual Object Tracking based on Adaptive Siamese and Motion Estimation Network
  4. C语言—单链表
  5. Python序列之字符串 (str)
  6. ASP.NET Core 中的 Razor 页面介绍
  7. RabbitMQ 安装,配置
  8. jQuery之offset,position
  9. request内置对象在JSP
  10. python配置文件读取