1、概述

  案例:使用OpenCV实现图像的旋转和镜像操作

  所用函数:这里主要使用到了两个函数

    1.旋转:cv::rotate

    2.镜像:cv::flip  

rotate(InputArray src, OutputArray dst, int rotateCode);
src:输入图像
dst:输出图像
rotateCode:ROTATE_180,顺时针180°ROTATE_90_CLOCKWISE,顺时针90°ROTATE_90_COUNTERCLOCKWISE,逆时针90°flip(InputArray src, OutputArray dst, int flipCode);
src:输入图像
dst:输出图像
flipCode:>0表示y轴翻转=0表示x轴翻转<0表示xy轴同时翻转

2、代码示例

Video_Player_Roate_Flip::Video_Player_Roate_Flip(QWidget *parent): QWidget{parent}
{this->setWindowTitle("图片旋转与镜像");this->setFixedSize(320,480);//选择图片QPushButton *chooseImageBtn = new QPushButton(this);chooseImageBtn->setText("选择图片");connect(chooseImageBtn,&QPushButton::clicked,[=](){//选择图片chooseImage();});//图像旋转QRadioButton *rotate1 = new QRadioButton(this);rotate1->move(0,chooseImageBtn->y()+chooseImageBtn->height()+5);rotate1->setText("顺时针180°");QRadioButton *rotate2 = new QRadioButton(this);rotate2->move(rotate1->x()+rotate1->width()+5,chooseImageBtn->y()+chooseImageBtn->height()+5);rotate2->setText("顺时针90°");QRadioButton *rotate3 = new QRadioButton(this);rotate3->move(rotate2->x()+rotate2->width()+5,chooseImageBtn->y()+chooseImageBtn->height()+5);rotate3->setText("逆时针90°");connect(rotate1,&QRadioButton::clicked,[=](){showImageRoate(0);});connect(rotate2,&QRadioButton::clicked,[=](){showImageRoate(1);});connect(rotate3,&QRadioButton::clicked,[=](){showImageRoate(2);});//图像镜像QRadioButton *rotate4 = new QRadioButton(this);rotate4->move(0,rotate1->y()+rotate1->height()+5);rotate4->setText("沿y轴翻转");QRadioButton *rotate5 = new QRadioButton(this);rotate5->move(rotate4->x()+rotate4->width(),rotate1->y()+rotate1->height()+5);rotate5->setText("沿x轴翻转");QRadioButton *rotate6 = new QRadioButton(this);rotate6->move(rotate5->x()+rotate5->width(),rotate1->y()+rotate1->height()+5);rotate6->setText("沿xy轴翻转");connect(rotate4,&QRadioButton::clicked,[=](){showImageFlip(0);});connect(rotate5,&QRadioButton::clicked,[=](){showImageFlip(1);});connect(rotate6,&QRadioButton::clicked,[=](){showImageFlip(2);});
}void Video_Player_Roate_Flip::chooseImage(){path = QFileDialog::getOpenFileName(this,"选择图像","/Users/yangwei/Downloads/","Image File(*.jpg *.jpeg *.png *.bmp)");qDebug()<<path;
}void Video_Player_Roate_Flip::showImageRoate(int type){Mat src = imread(path.toStdString().c_str());if(src.empty()){qDebug()<<"不能为空";return;}imshow("src",src);Mat dst;switch(type){case 0://cv::rotate(src,dst,ROTATE_180);//顺时针180°break;case 1:cv::rotate(src,dst,ROTATE_90_CLOCKWISE);//顺时针90°break;case 2:cv::rotate(src,dst,ROTATE_90_COUNTERCLOCKWISE);//逆时针90°break;}imshow("dst",dst);}void Video_Player_Roate_Flip::showImageFlip(int type){Mat src = imread(path.toStdString().c_str());if(src.empty()){qDebug()<<"不能为空";return;}imshow("src",src);Mat dst;switch(type){case 0:cv::flip(src,dst,1);//y轴翻转break;case 1:cv::flip(src,dst,0);//x轴翻转break;case 2:cv::flip(src,dst,-1);//xy轴翻转break;}imshow("dst",dst);
}

3、演示图像

本文福利,费领取Qt开发学习资料包、技术视频,内容包括(C++语言基础,Qt编程入门,QT信号与槽机制,QT界面开发-图像绘制,QT网络,QT数据库编程,QT项目实战,QSS,OpenCV,Quick模块,面试题等等)↓↓↓↓↓↓见下面↓↓文章底部点击莬费领取↓↓

OpenCV图像旋转(cv::rotate)与镜像(cv::flip)相关推荐

  1. opencv图像旋转和翻转,cv2.flip,cv2.rotate

    目录 翻转图像 图像旋转 翻转图像 opencv中使用cv2.filp可以实现图像翻转 def flip(src, flipCode, dst=None) src:输入图像 flipCode:flip ...

  2. OpenCV图像旋转,指定填充背景颜色边界颜色

    OpenCV图像旋转,指定填充背景颜色边界颜色 OpenCV与图像旋转有关的函数: (1)warpAffine函数 void cv::warpAffine ( InputArray  src,     ...

  3. OpenCV:OpenCV图像旋转的代码

    OpenCV图像旋转的代码 cv::transpose( bfM, bfM ) 前提:使用两个矩阵Mat型进行下标操作是不行的,耗费的时间太长了.直接使用两个指针对拷贝才是王道.不知道和OpenCV比 ...

  4. OpenCV 图像旋转、平移、缩放

    本文是 OpenCV图像视觉入门之路的第7篇文章,本文详细的进行了图像的缩放 cv2.resize().旋转 cv2.flip().平移 cv2.warpAffine()等操作. OpenCV 图像旋 ...

  5. python opencv 图像旋转

    python opencv 图像旋转 原图 顺时针旋转 代码: import cv2 path = '2.jpg' img = cv2.imread(path,1) trans_img = cv2.t ...

  6. 7.opencv图像对称翻折image-Flip(cv2.flip)

    7.opencv图像对称翻折image-Flip(cv2.flip) 一.什么是图像翻转? 二.项目结构和代码讲解 1.项目结构 2.代码讲解 三.代码下载 与图像旋转类似,OpenCV 也提供了在x ...

  7. 经验 | OpenCV图像旋转的原理与技巧

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自|OpenCV学堂 01 引言 初学图像处理,很多人遇到的 ...

  8. OpenCV图像旋转的原理与技巧

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 转自|OpenCV学堂 01 引言 初学图像处理,很多人遇到的第一 ...

  9. OpenCV 图像旋转

    在OpenCV中图像旋转首先根据旋转角度和旋转中心获取旋转矩阵,然后根据旋转矩阵进行变换,即可实现任意角度和任意中心的旋转效果. cv2.getRotationMatrix2D(center, ang ...

最新文章

  1. OpenCV读写xml和yml文件
  2. 文巾解题 175. 组合两个表
  3. web.xml、JSP原理、指令
  4. MobileNet论文阅读笔记
  5. LeetCode65——Valid Number(使用DFA)来判断字符串是否为数字
  6. POJ 1200 Crazy Search 查找有多少种不同的子串(hash)
  7. 【AI视野·今日CV 计算机视觉论文速览 第196篇】Wed, 12 May 2021
  8. 决策树算法python实现_决策树之python实现ID3算法(例子)
  9. 使用HttpClient连接池进行https单双向验证
  10. C语言指针详解(经典,非常详细)
  11. Vision Assistant Minimum Scree Resolution
  12. ADSAD合辑(一)
  13. 项目Beta冲刺(4/7)(追光的人)(2019.5.26)
  14. 人脸识别支付欺诈手段和防范措施
  15. 游戏App上架iOS被拒各种奇葩问题
  16. Week2 Assignment - Princeton-Algorithms-PartI
  17. C++ 开发中如何利用sql语句(insert语句)向数据库中插入变量
  18. iib 9.0.0.2 安装
  19. Windows server 2012 远程桌面被系统自动关闭
  20. 【机器学习的高等数学基础】导数的几何意义和物理意义、函数的可导性与连续性之间的关系、平面曲线的切线和法线、基本导数与微分表、微分中值定理,泰勒公式、弧微分、曲率、曲率半径、洛必达法则、渐近线的求法等

热门文章

  1. 《D o C P》学习笔记(3 - 1)Regular Expressions, other languages and interpreters - Lesson 3
  2. Flutter文本输入框-TextField
  3. Beam Search、GREEDY DECODER、SAMPLING DECODER等解码器工作原理可视化以及在自然语言生成领域的使用
  4. Excel数据的导入
  5. 谷歌浏览器后提示Adobe Flash Player因过期而遭到阻止
  6. 笔记本键盘两个ctrl键同时失灵怎么解决?
  7. 萤光云服务器,你值得拥有
  8. uniapp中使用uview组件u-icon 编辑到微信小程序样式问题
  9. SylixOS 系统工作队列
  10. BES蓝牙耳机进入待机状态设计