OpenCV 图形API(72)图像与通道拼接函数-----根据指定的方式翻转图像(GMat)函数 flip()

  • 操作系统:ubuntu22.04
  • OpenCV版本:OpenCV4.9
  • IDE:Visual Studio Code
  • 编程语言:C++11

算法描述

翻转一个2D矩阵,围绕垂直轴、水平轴或同时围绕两个轴。
该函数以三种不同的方式之一翻转矩阵(行和列的索引是从0开始的):
dst i j = { src src.rows − i − 1 , j i f flipCode = 0 src i , src.cols − j − 1 i f flipCode > 0 src src.rows − i − 1 , src.cols − j − 1 i f flipCode < 0 \texttt{dst} _{ij} = \left\{ \begin{array}{l l} \texttt{src} _{\texttt{src.rows}-i-1,j} & if\; \texttt{flipCode} = 0 \\ \texttt{src} _{i, \texttt{src.cols} -j-1} & if\; \texttt{flipCode} > 0 \\ \texttt{src} _{ \texttt{src.rows} -i-1, \texttt{src.cols} -j-1} & if\; \texttt{flipCode} < 0 \\ \end{array} \right. dstij= srcsrc.rowsi1,jsrci,src.colsj1srcsrc.rowsi1,src.colsj1ifflipCode=0ifflipCode>0ifflipCode<0
使用该函数的一些示例场景如下:

  • 当 flipCode == 0 时,图像的垂直翻转用于在左上角和左下角图像原点之间切换。这是在 Microsoft Windows* 操作系统上进行视频处理的典型操作。
  • 当 flipCode > 0 时,对图像进行水平翻转,然后进行水平位移并计算绝对差值以检查是否存在垂直轴对称性。
  • 当 flipCode < 0 时,同时进行水平和垂直翻转,然后进行位移并计算绝对差值以检查是否存在中心对称性。
    反转点数组的顺序(flipCode > 0 或 flipCode == 0)。

输出图像必须与输入图像具有相同的深度,尺寸应根据给定的 flipCode 正确设置。

注意:

函数的文字ID是 “org.opencv.core.transform.flip”

函数原型

GMat cv::gapi::flip 	
(const GMat &  	src,int  	flipCode 
) 	

参数

  • 参数 src: 输入矩阵。
  • 参数 flipCode: 一个标志,指定如何翻转数组;0表示绕x轴翻转,正值(例如1)表示绕y轴翻转。负值(例如-1)表示同时绕两个轴翻转。

代码示例

#include <opencv2/gapi.hpp>
#include <opencv2/gapi/core.hpp>
#include <opencv2/opencv.hpp>int main()
{// 创建一个测试图像cv::Mat img = cv::imread( "/media/dingxin/data/study/OpenCV/sources/images/Lenna.png" );if ( img.empty() ){std::cerr << "无法加载图像" << std::endl;return -1;}// 定义翻转模式,例如沿Y轴翻转(水平翻转)int flipCode = 1;  // 0: 垂直翻转, 1: 水平翻转, -1: 同时垂直和水平翻转// 将cv::Mat转换为GMatcv::GMat in;auto flipped = cv::gapi::flip( in, flipCode );// 定义并编译G-API图cv::GComputation flip_comp( cv::GIn( in ), cv::GOut( flipped ) );cv::Mat flipped_img;// 应用G-API图到输入图像flip_comp.apply( cv::gin( img ), cv::gout( flipped_img ) );// 显示原始和翻转后的图像cv::imshow( "Original Image", img );cv::imshow( "Flipped Image", flipped_img );cv::waitKey();return 0;
}

运行结果

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/78143.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/78143.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

医生视角下转录组学的生物信息学分析

医生视角下转录组学的生物信息学分析 转录组学的生物信息学分析是医生解决临床与科研问题的有力工具。这里罗列医学转录组学相关的几个概念&#xff0c;从使用者&#xff08;医生&#xff09;的角度看待理解相关技术&#xff0c;为后续使用该技术说明临床和科研问题奠定基础。…

量子机器学习中的GPU加速实践:基于CUDA Quantum的混合编程模型探索

引言&#xff1a;量子机器学习的新范式 在量子计算与经典机器学习交叉融合的前沿领域&#xff0c;量子机器学习&#xff08;Quantum Machine Learning, QML&#xff09;正经历着革命性突破。然而&#xff0c;随着量子比特规模的增长和算法复杂度的提升&#xff0c;传统计算架构…

Matplotlib核心课程-2

4.1 数据加载、储存 4.1.1 从数据文件读取数据 导入支持库&#xff1a; import numpy as np from pandas import Series,DataFrame import pandas as pd 从csv文件读取数据&#xff0c;一般方法&#xff1a; pd.read_csv(../data/ex1.csv,encodinggbk) 从csv文件读取数据&#…

new和malloc的区别

1 语义层级不同&#xff1a;语言机制 vs. 库函数 new / new[] (C 关键字)malloc / calloc / realloc (C 运行时函数)本质语言级运算符&#xff1b;可被重载库函数&#xff1b;无法重载作用分配内存 并调用构造函数仅分配原始字节块&#xff0c;不做初始化&#xff0c;也不调用…

C++11新特性_自动类型推导_auto

在 C11 标准中&#xff0c;auto关键字被赋予了全新且强大的功能&#xff0c;它用于自动类型推导&#xff0c;即编译器能够根据变量的初始化表达式自动确定其类型。 基本语法 使用auto声明变量时&#xff0c;只需给出auto关键字&#xff0c;后面紧跟变量名&#xff0c;并对其进…

[预备知识]6. 优化理论(二)

优化理论 本章节介绍深度学习中的高级优化技术&#xff0c;包括学习率衰减、梯度裁剪和批量归一化。这些技术能够显著提升模型的训练效果和稳定性。 学习率衰减&#xff08;Learning Rate Decay&#xff09; 数学原理与可视化 学习率衰减策略的数学表达&#xff1a; 步进式…

【计算机视觉】语义分割:Mask2Former:统一分割框架的技术突破与实战指南

深度解析Mask2Former&#xff1a;统一分割框架的技术突破与实战指南 技术架构与创新设计核心设计理念关键技术组件 环境配置与安装指南硬件要求安装步骤预训练模型下载 实战全流程解析1. 数据准备2. 配置文件定制3. 训练流程4. 推理与可视化 核心技术深度解析1. 掩膜注意力机制…

数字智慧方案5857丨智慧机场解决方案与应用(53页PPT)(文末有下载方式)

资料解读&#xff1a;智慧机场解决方案与应用 详细资料请看本解读文章的最后内容。 随着科技的飞速发展&#xff0c;智慧机场的建设已成为现代机场发展的重要方向。智慧机场不仅提升了旅客的出行体验&#xff0c;还极大地提高了机场的运营效率。本文将详细解读沃土数字平台在…

【C到Java的深度跃迁:从指针到对象,从过程到生态】第五模块·生态征服篇 —— 第二十章 项目实战:从C系统到Java架构的蜕变

一、跨语言重构&#xff1a;用Java重写Redis核心模块 1.1 Redis的C语言基因解析 Redis 6.0源码核心结构&#xff1a; // redis.h typedef struct redisObject { unsigned type:4; // 数据类型&#xff08;String/List等&#xff09; unsigned encoding:4; // …

ES6异步编程中Promise与Proxy对象

Promise 对象 Promise对象用于解决Javascript中的地狱回调问题&#xff0c;有效的减少了程序回调的嵌套调用。 创建 如果要创建一个Promise对象&#xff0c;最简单的方法就是直接new一个。但是&#xff0c;如果深入学习&#xff0c;会发现使用Promise下的静态方法Promise.re…

UE自动索敌插件Target System Component

https://www.fab.com/zh-cn/listings/9088334d-3bde-4e10-a937-baeb780f880f ​ 一个完全用 C 编写的 UE插件&#xff0c;添加了对简单相机锁定/瞄准系统的支持。它最初​​在蓝图中开发和测试&#xff0c;然后转换并重写为 C 模块和插件。 特征&#xff1a; 可通过一组可在…

中小企业MES系统概要设计

版本&#xff1a;V1.0 日期&#xff1a;2025年5月2日 一、系统架构设计 1.1 整体架构模式 采用分层微服务架构&#xff0c;实现模块解耦与灵活扩展&#xff0c;支持混合云部署&#xff1a; #mermaid-svg-drxS3XaKEg8H8rAJ {font-family:"trebuchet ms",verdana,ari…

STM32移植U8G2

STM32 移植 U8G2 u8g2 &#xff08;Universal 8bit Graphics Library version2 的缩写&#xff09;是用于嵌入式设备的单色图形库&#xff0c;可以在单色屏幕中绘制 GUI。u8g2 内部附带了例如 SSD13xx&#xff0c;ST7xx 等很多 OLED&#xff0c;LCD 驱动。内置多种不同大小和风…

Langchain,为何要名为langchian?

来听听 DeepSeek 怎么说 Human 2025-05-02T01:13:43.627Z langchain 是一个大语言模型开发框架。我的理解中&#xff0c;lang 是词根"语言"&#xff0c;chain是单词"链"&#xff0c;langchain 便是将语言模型和组件串联成链的框架。而 langchain 的图标是…

Windows下Python3脚本传到Linux下./example.py执行失败

1. 背景 大多数情况下通过pycharm编写Python代码&#xff0c;编写调试完&#xff0c;到Linux下发布执行。 以example.py脚本为例 #! /usr/bin/env python3 #! -*- encoding: utf-8 -*- def test(x,y): xint x yint y cxy return c if _name_"__main__": print(test(2…

当MCP撞进云宇宙:多芯片封装如何重构云计算的“芯“未来?

当MCP撞进云宇宙:多芯片封装如何重构云计算的"芯"未来? 2024年3月,AMD发布了震撼业界的MI300A/B芯片——这颗为AI计算而生的"超级芯片",首次在单封装内集成了13个计算芯片(包括3D V-Cache缓存、CDNA3 GPU和Zen4 CPU),用多芯片封装(Multi-Chip Pac…

用定时器做微妙延时注意事项

注意定时器来着APB1还是APB2&#xff0c;二者频率不一样&#xff0c;配置PSC要注意 &#xff08;1&#xff09;高级定时器timer1&#xff0c; timer8以及通用定时器timer9&#xff0c; timer10&#xff0c; timer11的时钟来源是APB2总线 &#xff08;2&#xff09;通用定时器ti…

三类思维坐标空间与时空序位信息处理架构

三类思维坐标空间与时空序位信息处理架构 一、静态信息元子与元组的数据结构设计 三维思维坐标空间定义 形象思维轴&#xff08;x&#xff09;&#xff1a;存储多媒体数据元子&#xff08;图像/音频/视频片段&#xff09; 元子结构&#xff1a;{ID, 数据块, 特征向量, 语义…

spring boot中@Validated

在 Spring Boot 中&#xff0c;Validated 是用于触发参数校验的注解&#xff0c;通常与 ​​JSR-303/JSR-380​​&#xff08;Bean Validation&#xff09;提供的校验注解一起使用。以下是常见的校验注解及其用法&#xff1a; ​1. 基本校验注解​​ 这些注解可以直接用于字段…

Hadoop 单机模式(Standalone Mode)部署与 WordCount 测试

通过本次实验&#xff0c;成功搭建了 Hadoop 单机环境并运行了基础 MapReduce 程序&#xff0c;为后续分布式计算学习奠定了基础。 掌握 Hadoop 单机模式的安装与配置方法。 熟悉 Hadoop 环境变量的配置及 Java 依赖管理。 使用 Hadoop 自带的 WordCount 示例程序进行简单的 …