图像处理开发需求、图像处理接私活挣零花钱,请加微信/QQ 2487872782
图像处理开发资料、图像处理技术交流请加QQ群,群号 271891601

图像的仿射变换是指在空间直角坐标系中将一个二维坐标转换到另外一个二维坐标,仿射变换是一种线性变换,所以可以用矩阵的运算来表过仿射变换,仿射变换主要用来实现平移、缩放、翻转、旋转及剪切等相关几何操作。

所以,作图像的仿射变换的关键是要计算出仿射变换矩阵,仿射变换是一个2*3的矩阵,仿射变换矩阵的人工计算方法可以参考书籍【精通MATLAB数字图像处理(下载链接:百度网盘-链接不存在 密码:j61d)】第四章的方法

在OpenCV中,可以用源图像与目标图像的三对点计算出仿射变换矩阵,使用函数getAffineTransform()便可以实现这个计算!具体的实际上就是指出源图像中

下面给一段我自己写的源代码,功能是用仿射变换实现图像的水平镜像(翻转),

图像处理开发资料、图像处理开发需求、图像处理接私活挣零花钱,可以搜索公众号"qxsf321",并关注!

源码中用到的图像的下载链接为:sea.jpg_免费高速下载|百度网盘-分享无限制

//opencv版本:OpenCV3.0
//VS版本:VS2013
//Author:qxsf321.net#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/types_c.h>
#include <iostream>int main()
{cv::Mat image = cv::imread("lena.jpg");if (image.empty()){std::cout << "read image failure" << std::endl;return -1;}cv::Point2f center = cv::Point2f(image.cols / 2, image.rows / 2);  // 旋转中心   double angle = 30;  // 旋转角度   double scale = 0.5; // 缩放尺度   cv::Mat rotateMat;rotateMat = cv::getRotationMatrix2D(center, angle, scale);//rotateMat为计算出的仿射变换矩阵cv::Mat rotateImg;cv::warpAffine(image, rotateImg, rotateMat, image.size());cv::imshow("Image", image);cv::imshow("rotateImg", rotateImg);cv::waitKey(0);return 0;
}

程序运行结果如下图所示:

图像处理开发需求、图像处理接私活挣零花钱,请加微信/QQ 2487872782
图像处理开发资料、图像处理技术交流请加QQ群,群号 271891601

OpenCV下三对点计算仿射变换实现图像的水平镜像(翻转)的详细说明和源程序相关推荐

  1. 用OpenCV实现图像的水平镜像(翻转)变换和竖直镜像(翻转)变换(垂直镜像变换)的源码

    图像处理开发需求.图像处理接私活挣零花钱,请加微信/QQ 2487872782 图像处理开发资料.图像处理技术交流请加QQ群,群号 271891601 直接上源码,本人是参考博文的源码OpenCV2: ...

  2. 利用OpenCV的flip()函数实现图像的水平镜像(水平翻转)、垂直镜像(垂直翻转)

    OpenCV的函数flip()可以实现图像沿x轴翻转.沿y轴翻转.同时沿x轴和y轴翻转,从而实现图像的水平镜像和垂直镜像. 函数flip()的C++原型如下: void cv::flip(InputA ...

  3. opencv学习(三十五)之仿射变换warpAffine

    1.仿射变换介绍 仿射变换是指在向量空间中进行一次线性变换(乘以一个矩阵)并加上一个平移(加上一个向量),变换为另一个向量空间的过程.在有限维的情况下,每个仿射变换可以由一个矩阵A和一个向量b给出,它 ...

  4. 3h精通OpenCV(三)-重调大小与图像裁剪

    0.准备工作 右击新建的项目,选择Python File,新建一个Python文件,然后在开头import cv2导入cv2库. 我们还要知道在OpenCV中,坐标轴的方向是x轴向右,y轴向下,坐标原 ...

  5. opencv 图像 水平镜像翻转 函数

    // //函数功能:图片水平镜像 //输入: Mat src原图像 //输出: 镜像变换后的图像 // Mat mirror(Mat src) {Mat result;result.create(sr ...

  6. opencv计算图像的水平投影和垂直投影

    本文介绍使用opencv实现计算一幅图像的水平投影和垂直投影,代码如下: class HorizontalProjection { private:int maxLine;//255最大行位置int ...

  7. python opencv图片旋转180度_Python opencv图像镜像翻转

    最近在训练CNN网络,需要对数据进行扩充,于是想做一下图像的镜像翻转,主要参考了博客: 不过我发现博主使用的是opencv老版本了,现在大家都是cv2了,因此我对博主的代码进行了必要的修改. 首先,说 ...

  8. CSS下镜像翻转(水平/垂直翻转)

    css下镜像翻转两种写法: 利用css动画属性rotate旋转来实现: .mirrorRotateLevel {transform: rotateY(180deg); /* 水平镜像翻转 */ } . ...

  9. opencv 图像仿射变换 计算仿射变换后对应特征点的新坐标 图像旋转、缩放、平移...

    常常需要最图像进行仿射变换,仿射变换后,我们可能需要将原来图像中的特征点坐标进行重新计算,获得原来图像中例如眼睛瞳孔坐标的新的位置,用于在新得到图像中继续利用瞳孔位置坐标. 仿射变换在:http:// ...

最新文章

  1. 手写Python中列表和字符串的反转
  2. EM算法matlab和Java实现
  3. Linux系列:Ubuntu/fedora实用小技巧—禁止自动锁屏、设置免密码自动登录、免密码执行sudo操作...
  4. 【STM32】SPI简介
  5. 【很久之前的一篇老文章】一位程序员工作10年总结的13个忠告
  6. 数据生态mysql_数据生态:MySQL复制技术与生产实践
  7. 机器学习(十一)谱聚类算法
  8. 华为起诉美国政府新进展;小米空调对董明珠“没有压力”;扎克伯格:后悔没早点学微信 | 极客头条...
  9. matlab神经网络训练方法,matlabrbf神经网络工具箱
  10. 宋宝华Linux培训笔记-Linux多进程
  11. 关于Pidgin和webqq
  12. 2022年度软考考试时间表已公布
  13. jQuery源码分析系列(一)初识jQuery
  14. eXtremeTable -
  15. pytorch distiller Weights Pruning Algorithms
  16. 信标杂谈:外卖骑手和微信摇一摇的故事
  17. C++的开方,平方,绝对值
  18. 经典常用SQL语句大全(绝对的经典)
  19. Android 聊天界面对话
  20. 蓖麻凝集素Ⅱ(RCAⅡ,RCA60,ricin)

热门文章

  1. python利器跟python一样吗-VS code for python开发利器
  2. python3爬虫实例-自己动手,丰衣足食!Python3网络爬虫实战案例
  3. python错误-python异常与错误区别
  4. python入门编程题库-Python经典基础编程练习题(六)——每日10题
  5. 用python画花瓣-Python——画一棵漂亮的樱花树
  6. monty python flying circus-巨蟒剧团之飞翔的马戏团 第1季
  7. python哪一版好用-最好的 Python IDE,你们推荐使用哪一个?
  8. python入门到精通需要学多久-Python从入门到精通只需要一个月就够了!
  9. 搞定Linux只要半年
  10. Opengl-基本概念-对象(很关键啊兄弟这章)