转自:OpenCV图像旋转和翻转

      有时从摄像头获取的图像不是自己想要的方位,而又不想或者不能调整相机的位置时,我们就需要通过软件来调整图像的朝向。这就是本文中要介绍的图像的反转和翻转的问题。

      基本的思路是:

     (1)将使用transpose(src, dst);对目标图像进行转置变换,可以将垂直的图像变为水平放置

     (2) 然后使用flip()函数对图像进行翻转。

       有的人要问为什么不直接对图像进行翻转,该开始我也有同样的疑问,所以就用程序试了一下,才知道

flip()只是按照x,或者y坐标轴进行旋转,图像的宽和高始终没有变换,不能起到将图像整体旋转正负90°的效果。

#include "stdafx.h"
#include "opencv/cv.h"
#include "opencv/highgui.h"
#include "stdio.h"
#include "iostream"using namespace cv;
using namespace std;int _tmain(int argc, _TCHAR* argv[])
{Mat src = imread("test.jpg");Mat dst;transpose(src, dst);Mat dst2;flip(dst, dst2, 1); // flip by y axis   是沿着y坐标轴旋转,而不是整体的旋转,以下类似Mat dst3;flip(dst, dst3, 0); // flip by x axis   Mat dst4;flip(dst, dst4, -1); // flip by both axisesimshow("原图像", src);imshow("左旋90度,镜像", dst);     //左旋90,镜像imshow("右旋90度", dst2);          //右旋90°imshow("左旋90度", dst3);          //左旋90°imshow("右旋90度,镜像", dst4);     //右旋90°,镜像cvWaitKey();return 0;
}

这里面用的最多可能就是左旋和右旋90°,其他的度数180°,-90°,可以通过多次旋转得到。

效果如图下图所示:

【OpenCV学习笔记】【编程实例】二(图像的旋转和翻转)相关推荐

  1. OpenCV学习笔记(十二):边缘检测:Canny(),Sobel(),Laplace(),Scharr滤波器

    OpenCV学习笔记(十二):边缘检测:Canny(),Sobel(),Laplace(),Scharr滤波器 1)滤波:边缘检测的算法主要是基于图像强度的一阶和二阶导数,但导数通常对噪声很敏感,因此 ...

  2. OpenCV学习笔记(三)——图像像素(图像的最大(小)值、均值、标准差、比较运算、逻辑运算、图像二值化)

    目录 1 图像像素统计 1.1 图像像素的最大值和最小值 1.2 计算图像的均值和标准差 2 两图像间的像素操作 2.1 比较运算 2.2 逻辑运算 3 图像二值化 1 图像像素统计 数字图像可以用大 ...

  3. OpenCV学习笔记(一)图像编程入门

    //题外话:按住Enter键执行的是段落换行,同时按住Enter键和Shift键可以实现逐句换行 //三大件 #include<opencv2/core.hpp> #include< ...

  4. OpenCV学习笔记(十二)之USM图像锐化

    一.图像锐化原理   图像锐化,是使图像边缘更加清晰的一种图像处理方法,说白了就是让图像的边缘看起来更加清晰明了.其原理主要就是利用图像的高频分量来实现的,将原图像的高频分量提取出来,再和原图像按一定 ...

  5. OpenCV学习笔记(十)——图像卷积(cv.filter2D()、矩阵旋转cv.filp())

    目录 1 图像卷积过程 2 cv.filter2D() 3 cv.filp() 卷积运算在信号处理中十分常见,而图像信息可以看成一种信号.例如,图像的每一行可以看出测量亮度变化的信号,而每一列可以看作 ...

  6. OpenCV学习笔记11_Mask操作与图像叠加

    一.掩膜操作Mask 在opencv功能(两点): 1. 逻辑运算模板mask: 可以理解为一个字帖模板, 能描的地方就看成是一个Mask, 后续的处理只针对这个Mask来操作 例如: inline ...

  7. 【opencv学习笔记】003之图像像素基本操作(获取像素指针、范围处理)及掩膜操作(filter2D)详解

    目录 一.前言 二.图像像素基本操作 1.获取图像像素指针 1.获取图像像素指针是什么? 2.相应API 3.获取目的 2.像素范围处理saturate_cast 1.像素范围处理是什么? 2.像素范 ...

  8. opencv计算图像亮度调节_【opencv学习笔记七】访问图像中的像素与图像亮度对比度调整...

    今天我们来看一下如何访问图像的像素,以及如何改变图像的亮度与对比度. 在之前我们先来看一下图像矩阵数据的排列方式.我们以一个简单的矩阵来说明: 对单通道图像排列如下: 对于双通道图像排列如下: 那么对 ...

  9. OpenCV学习笔记(7)图像的通道(channels)问题

    整理一下OpenCV中文论坛里关于图像通道的问题,如下: (1)图像的通道指的是什么?是不是灰度图的通道数为1,彩色图的通道为3?(zhuker) 正确! 基本上,描述一个像素点,如果是灰度,那么只需 ...

  10. openCV学习笔记(十二) —— 人脸识别算法(1/3)—— 特征脸 EigenFaces

    一.原理 opencv支持3种人脸识别的算法,分别是: 1.    Eigen Faces    PCA(特征脸方法) 2.    Fisher Faces    LDA(线性判别分析) 3.     ...

最新文章

  1. 【Unity】修改UGUI Minimap(2.2.5)的显示范围(min,max)
  2. web前端面试题(含答案)
  3. g++ linux 编译开栈_方舟编译器编译hello world踩坑全记录
  4. 奥格斯堡大学计算机系,奥格斯堡大学七大科系设置简介
  5. android 屏幕适配dimens,关于android:安卓屏幕适配一键生成dimens文件
  6. Spring学习总结(3)——Spring配置文件详解
  7. xtrabackup部署以及使用
  8. c语言表白代码颜色,C语言告白代码,一闪一闪亮晶晶~
  9. c与c++分别是怎样动态分配和释放内存的,有什么区别?(转)
  10. 建立域用户时遇到的问题。
  11. FPGA杂记5——格雷码转换设计
  12. 批处理跑Axapta多个主计划
  13. zoom下载官网android最新,Zoom下载安卓最新版_手机app官方版免费安装下载_豌豆荚...
  14. 3DMine V202006体验版本下载
  15. 流程图中的实线_教你如何正确看懂工艺流程图
  16. 如何处理偶现的 Bug
  17. 实现对mysql增删改查_Java语言实现对MySql数据库中数据的增删改查操作的代码
  18. 陪诊系统app开发,一个应用可切换不同身份
  19. php程序员学什么语言好就业_中高级PHP程序员应该掌握哪些技术?
  20. RStudio用不了怎么办?

热门文章

  1. 线程池如何确定线程数量
  2. sqlitepython导入数据_Python导入excel数据到sqlite;
  3. php form表单提交代码,PHP之表单的提交
  4. java ajax分页_使用Jquery+Ajax+Json如何实现分页显示附JAVA+JQuery实现异步分页
  5. SQL:Mongoose在node中的应用
  6. Javascript特效:简单日历
  7. Javascript特效:阿鲁的相册
  8. 面向对象(Python):学习笔记之私有属性和私有方法
  9. Python:学习笔记之变量
  10. 超快的HTML5 2D渲染引擎Pixi.js入门