OpenCV图像旋转(cv::rotate)与镜像(cv::flip)
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)相关推荐
- opencv图像旋转和翻转,cv2.flip,cv2.rotate
目录 翻转图像 图像旋转 翻转图像 opencv中使用cv2.filp可以实现图像翻转 def flip(src, flipCode, dst=None) src:输入图像 flipCode:flip ...
- OpenCV图像旋转,指定填充背景颜色边界颜色
OpenCV图像旋转,指定填充背景颜色边界颜色 OpenCV与图像旋转有关的函数: (1)warpAffine函数 void cv::warpAffine ( InputArray src, ...
- OpenCV:OpenCV图像旋转的代码
OpenCV图像旋转的代码 cv::transpose( bfM, bfM ) 前提:使用两个矩阵Mat型进行下标操作是不行的,耗费的时间太长了.直接使用两个指针对拷贝才是王道.不知道和OpenCV比 ...
- OpenCV 图像旋转、平移、缩放
本文是 OpenCV图像视觉入门之路的第7篇文章,本文详细的进行了图像的缩放 cv2.resize().旋转 cv2.flip().平移 cv2.warpAffine()等操作. OpenCV 图像旋 ...
- python opencv 图像旋转
python opencv 图像旋转 原图 顺时针旋转 代码: import cv2 path = '2.jpg' img = cv2.imread(path,1) trans_img = cv2.t ...
- 7.opencv图像对称翻折image-Flip(cv2.flip)
7.opencv图像对称翻折image-Flip(cv2.flip) 一.什么是图像翻转? 二.项目结构和代码讲解 1.项目结构 2.代码讲解 三.代码下载 与图像旋转类似,OpenCV 也提供了在x ...
- 经验 | OpenCV图像旋转的原理与技巧
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自|OpenCV学堂 01 引言 初学图像处理,很多人遇到的 ...
- OpenCV图像旋转的原理与技巧
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 转自|OpenCV学堂 01 引言 初学图像处理,很多人遇到的第一 ...
- OpenCV 图像旋转
在OpenCV中图像旋转首先根据旋转角度和旋转中心获取旋转矩阵,然后根据旋转矩阵进行变换,即可实现任意角度和任意中心的旋转效果. cv2.getRotationMatrix2D(center, ang ...
最新文章
- OpenCV读写xml和yml文件
- 文巾解题 175. 组合两个表
- web.xml、JSP原理、指令
- MobileNet论文阅读笔记
- LeetCode65——Valid Number(使用DFA)来判断字符串是否为数字
- POJ 1200 Crazy Search 查找有多少种不同的子串(hash)
- 【AI视野·今日CV 计算机视觉论文速览 第196篇】Wed, 12 May 2021
- 决策树算法python实现_决策树之python实现ID3算法(例子)
- 使用HttpClient连接池进行https单双向验证
- C语言指针详解(经典,非常详细)
- Vision Assistant Minimum Scree Resolution
- ADSAD合辑(一)
- 项目Beta冲刺(4/7)(追光的人)(2019.5.26)
- 人脸识别支付欺诈手段和防范措施
- 游戏App上架iOS被拒各种奇葩问题
- Week2 Assignment - Princeton-Algorithms-PartI
- C++ 开发中如何利用sql语句(insert语句)向数据库中插入变量
- iib 9.0.0.2 安装
- Windows server 2012 远程桌面被系统自动关闭
- 【机器学习的高等数学基础】导数的几何意义和物理意义、函数的可导性与连续性之间的关系、平面曲线的切线和法线、基本导数与微分表、微分中值定理,泰勒公式、弧微分、曲率、曲率半径、洛必达法则、渐近线的求法等
热门文章
- 《D o C P》学习笔记(3 - 1)Regular Expressions, other languages and interpreters - Lesson 3
- Flutter文本输入框-TextField
- Beam Search、GREEDY DECODER、SAMPLING DECODER等解码器工作原理可视化以及在自然语言生成领域的使用
- Excel数据的导入
- 谷歌浏览器后提示Adobe Flash Player因过期而遭到阻止
- 笔记本键盘两个ctrl键同时失灵怎么解决?
- 萤光云服务器,你值得拥有
- uniapp中使用uview组件u-icon 编辑到微信小程序样式问题
- SylixOS 系统工作队列
- BES蓝牙耳机进入待机状态设计