当前位置: 首页 > news >正文

图像旋转翻转变换

题目描述

给定m行n列的图像各像素点灰度值,对其依次进行一系列操作后,求最终图像。

其中,可能的操作及对应字符有如下四种:

A:顺时针旋转90度;

B:逆时针旋转90度;

C:左右翻转;

D:上下翻转。

输入描述

第一行包含两个正整数m和n,表示图像的行数和列数,中间用单个空格隔开。1 <= m <= 100, 1 <= n <= 100。
接下来m行,每行n个整数,表示图像中每个像素点的灰度值,相邻两个数之间用单个空格隔开。灰度值范围在0到255之间。
接下来一行,包含由A、B、C、D组成的字符串s,表示需要按顺序执行的操作序列。s的长度在1到100之间。

输出描述

m'行,每行包含n'个整数,为最终图像各像素点的灰度值。其中m'为最终图像的行数,n'为最终图像的列数。相邻两个整数之间用单个空格隔开

样例1

输入

2 3 10 0 10 100 100 10 AC

输出

10 100 0 100 10 10

代码

左右镜像


void zuoyou(){for (int i = 1; i <= n; i++){for (int j = 1; j <= m/2; j++){swap(a[i][j],a[i][m-j+1]);}}
}

上下镜像

void shangxia(){for (int i = 1; i <= n/2; i++){for (int j = 1; j <= m; j++){swap(a[i][j],a[n-i+1][j]);}}
}

顺时针转一圈

1 2 3
4 5 6
7 8 9

变成
1 4 7
2 5 8
3 6 9

void zhuanzi(){for (int i=1; i <= max(n,m); i++){for (int j = 1; j < i; j++){swap(a[i][j],a[j][i]);}}swap(n,m);
}

为什么J要小于I,因为是为了让对角线不换 .

其他的就对应自己的另一边.转换.

结合一下就是……

#include <bits/stdc++.h>
using namespace std;
int n,m,a[100][100] = {0};
void shangxia(){for (int i = 1; i <= n/2; i++){for (int j = 1; j <= m; j++){swap(a[i][j],a[n-i+1][j]);}}
}
void zuoyou(){for (int i = 1; i <= n; i++){for (int j = 1; j <= m/2; j++){swap(a[i][j],a[i][m-j+1]);}}
}
void zhuanzi(){for (int i=1; i <= max(n,m); i++){for (int j = 1; j < i; j++){swap(a[i][j],a[j][i]);}}swap(n,m);
}
void shun(){zhuanzi();zuoyou();
}
void ni(){zhuanzi();shangxia();
}

//这是函数部分。

主函数就比较简单套用一下

int main(){cin >> n >> m;for (int i = 1; i <= n; i ++){for (int j = 1; j <= m; j ++){cin >> a[i][j];}}string s;cin >>s;for (char opt : s){if (opt == 'A'){shun();}else if (opt == 'B'){ni();}else if (opt == 'C'){zuoyou();}else{shangxia();}}for (int i = 1; i <= n; i ++){for (int j = 1; j <= m; j ++){cout << a[i][j] << " ";}puts("");}return 0;
}

相关文章:

图像旋转翻转变换

题目描述 给定m行n列的图像各像素点灰度值&#xff0c;对其依次进行一系列操作后&#xff0c;求最终图像。 其中&#xff0c;可能的操作及对应字符有如下四种&#xff1a; A&#xff1a;顺时针旋转90度&#xff1b; B&#xff1a;逆时针旋转90度&#xff1b; C&#xff1a…...

网站常见的反爬手段及反反爬思路

摘要:介绍常见的反爬手段和反反爬思路&#xff0c;内容详细具体&#xff0c;明晰解释每一步&#xff0c;非常适合小白和初学者学习&#xff01;&#xff01;&#xff01; 目录 一、明确几个概念 二、常见的反爬手段及反反爬思路 1、检测user-agent 2、ip 访问频率的限制 …...

GUI—— 从的可执行exe文件中提取jar包并反编译成Java

从exe4j生成的可执行文件中提取嵌入的jar包并反编译成Java代码&#xff0c;可以按照以下步骤操作&#xff1a; 步骤1&#xff1a;提取jar包 1.运行exe程序&#xff1a;首先启动exe4j生成的.exe可执行文件。当它运行时&#xff0c;通常会将内部包含的jar文件解压到临时目录下。…...

阿里云服务器镜像是什么?如何选择镜像?

阿里云服务器镜像怎么选择&#xff1f;云服务器操作系统镜像分为Linux和Windows两大类&#xff0c;Linux可以选择Alibaba Cloud Linux&#xff0c;Windows可以选择Windows Server 2022数据中心版64位中文版&#xff0c;阿里云服务器网aliyunfuwuqi.com来详细说下阿里云服务器操…...

C语言------一种思路解决实际问题

1.比赛名次问题 ABCDE参加比赛&#xff0c;那么每个人的名次都有5种可能&#xff0c;即1&#xff0c;2&#xff0c;3&#xff0c;4&#xff0c;5&#xff1b; int main() {int a 0;int b 0;int c 0;int d 0;int e 0;for (a 1; a < 5; a){for (b 1; b < 5; b){for…...

前端判断对象为空

一.使用JSON.stringify()方法&#xff1a; JSON.stringify() 是将一个JavaScript对象或值转换为JSON格式字符串&#xff0c;如果最终只得到一个{}&#xff0c;就说明他是一个空对象 let obj1 {}; console.log(JSON.stringify(obj1) "{}"); //true 表示为空对象l…...

DS:栈和队列的相互实现

创作不易&#xff0c;感谢友友们三连&#xff01;&#xff01; 一、前言 栈和队列的相互实现是用两个栈去实现队列或者是用两个队列去实现栈&#xff0c;这样其实是把问题复杂化的&#xff0c;实际中没有什么应用价值&#xff0c;但是通过他们的相互实现可以让我们更加深入地理…...

Hack The Box-Office

端口扫描&信息收集 使用nmap对靶机进行扫描 nmap -sC -sV 10.10.11.3开放了80端口&#xff0c;并且注意到该ip对应的域名为office.htb&#xff0c;将其加入到hosts文件中访问之 注意到扫描出来的还有robots文件&#xff0c;经过尝试后只有administrator界面是可以访问的 …...

android aidl进程间通信封装通用实现

接上一篇的分析,今天继续 aidl复杂流程封装-CSDN博客 今天的任务就是将代码梳理下放进来 1 项目gradle配置: 需要将对应的代码放到各自的目录下,这里仅贴下关键内容,细节可以下载代码慢慢看 sourceSets { main { manifest.srcFile src/main/And…...

FL Studio 21.2.3.4004 All Plugins Edition Win/Mac音乐软件

FL Studio 21.2.3.4004 All Plugins Edition 是一款功能强大的音乐制作软件&#xff0c;提供了丰富的音频处理工具和插件&#xff0c;适用于专业音乐制作人和爱好者。该软件具有直观的用户界面&#xff0c;支持多轨道录音、混音和编辑&#xff0c;以及各种音频效果和虚拟乐器。…...

vivado RAM HDL Coding Guidelines

从编码示例下载编码示例文件。 块RAM读/写同步模式 您可以配置块RAM资源&#xff0c;为提供以下同步模式给定的读/写端口&#xff1a; •先读取&#xff1a;在加载新内容之前先读取旧内容。 •先写&#xff1a;新内容立即可供阅读先写也是众所周知的如通读。 •无变化&…...

springboot/ssm甘肃旅游服务平台Java在线旅游规划管理系统

springboot/ssm甘肃旅游服务平台Java在线旅游规划管理系统 开发语言&#xff1a;Java 框架&#xff1a;springboot&#xff08;可改ssm&#xff09; vue JDK版本&#xff1a;JDK1.8&#xff08;或11&#xff09; 服务器&#xff1a;tomcat 数据库&#xff1a;mysql 5.7&am…...

第三百五十四回

文章目录 1. 概念介绍2. 使用方法2.1 获取所有时区2.2 转换时区时间 3. 示例代码4. 内容总结 我们在上一章回中介绍了"分享一些好的Flutter站点"相关的内容&#xff0c;本章回中将介绍timezone包.闲话休提&#xff0c;让我们一起Talk Flutter吧。 1. 概念介绍 我们在…...

【Funny Game】 吃豆人

目录 【Funny Game】 吃豆人 吃豆人 文章所属专区 Funny Game 吃豆人 吃豆人&#xff0c;这款经典游戏如今依旧魅力四射。玩家需操控小精灵&#xff0c;在迷宫内吞噬所有豆子&#xff0c;同时避开狡猾的鬼怪。当吃完所有豆子后&#xff0c;便可消灭鬼怪&#xff0c;赢得胜利。…...

PyCharm - Run Debug 程序安全执行步骤

PyCharm - Run & Debug 程序安全执行步骤 1. Run2. DebugReferences 1. Run right click -> Run ‘simulation_data_gene…’ or Ctrl Shift F10 2. Debug right click -> Debug ‘simulation_data_gene…’ 在一个 PyCharm 工程下&#xff0c;存在多个 Pytho…...

作为一个程序员,最少要看过这几部电影吧?

计算机专业必看的几部电影 计算机专业必看的几部电影&#xff0c;就像一场精彩的编程盛宴&#xff01;《黑客帝国》让你穿越虚拟世界&#xff0c;感受高科技的魅力&#xff1b;《社交网络》揭示了互联网巨头的创业之路&#xff0c;《源代码》带你穿越时间解救世界&#xff0c;…...

备战蓝桥杯 Day4

目录 注意&#xff1a;递推开long long 1140&#xff1a;验证子串 1131&#xff1a;基因相关性 1176&#xff1a;谁考了第k名 1177&#xff1a;奇数单增序列 1180&#xff1a;分数线划定 1184&#xff1a;明明的随机数 1185&#xff1a;单词排序 1186&#xff1a;出现…...

用HTML和CSS打造跨年烟花秀视觉盛宴

目录 一、程序代码 二、代码原理 三、运行效果 一、程序代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><title>跨年烟花秀</title><meta name"viewport" content"widthdevi…...

SSH密钥认证登陆流程(Vscode连接到远程)

目录 前言连接远程步骤1. 下载工具包wsCli到本地机器2. 本地机器上生成ssh密钥3. 在服务器上安装公钥4. vscode连接到远程 参考资料 前言 SSH&#xff08;Secure Shell&#xff09;是一种用于远程登录和安全传输数据的网络协议。它提供了两种主要的远程连接方式&#xff1a; 密…...

k8s进阶之路-pod探针:容器内的监控机制,检测应用是否存活

配合Pod重启策略&#xff1a; RestartPolicy 应用程序是否启动完成&#xff1a; 3.startupProbe启动探针1.16&#xff1a;排他性 如果三个都配置了&#xff0c;会优先启动&#xff0c;会禁用前两个反馈成功后&#xff0c;才会启动以下两个 应用启动成功后&#xff1a; 1.L…...

从零搭建流媒体服务器:用ZLMediaKit + FFmpeg在CentOS上实现直播推拉流(完整配置与测试)

从零搭建流媒体服务器&#xff1a;用ZLMediaKit FFmpeg在CentOS上实现直播推拉流&#xff08;完整配置与测试&#xff09; 流媒体技术正在重塑现代内容分发的格局。想象一下&#xff0c;你正在开发一个在线教育平台&#xff0c;需要实时传输讲师的高清视频&#xff1b;或者运营…...

3分钟学会:全网资源一键下载神器res-downloader完全指南

3分钟学会&#xff1a;全网资源一键下载神器res-downloader完全指南 【免费下载链接】res-downloader 视频号、小程序、抖音、快手、小红书、直播流、m3u8、酷狗、QQ音乐等常见网络资源下载! 项目地址: https://gitcode.com/GitHub_Trending/re/res-downloader 还在为无…...

Unity安装包瘦身实战:从2.3GB到680MB的工程化治理

1. 为什么一个500MB的Unity项目打包后会变成3GB&#xff1f;——安装包膨胀的真实逻辑“Unity安装包减肥”这六个字&#xff0c;听起来像在给软件做瑜伽&#xff0c;但实际是每个上线前夜都在咬牙硬扛的生存战。我做过7个已上线的Unity手游项目&#xff0c;最深的体会是&#x…...

工业AI落地:自定义数据集与交叉验证的动态选择策略

1. 这不是选择题&#xff0c;而是控制权与可信度的平衡术你手头刚攒够2000张标注好的工业缺陷图&#xff0c;模型在验证集上跑出了92.3%的准确率——但上线三天后&#xff0c;产线新批次的钢板表面反光角度变了&#xff0c;准确率直接掉到68%。或者&#xff0c;你用sklearn的St…...

通过Taotoken Token Plan套餐降低长期项目成本的观察

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 通过Taotoken Token Plan套餐降低长期项目成本的观察 对于需要长期、稳定调用大模型API的项目而言&#xff0c;成本的可预测性和可…...

华为员工职业发展手册

导读&#xff1a;这份华为员工职业发展手册&#xff0c;围绕员工入职、成长、晋升与激励构建了完整的职业发展体系&#xff0c;核心是明确企业、管理者与员工三方责任&#xff0c;搭建多元发展通道&#xff0c;助力员工与企业共成长。关注公众号&#xff1a;【互联互通社区】&a…...

大模型概念遗忘:SCUGP梯度投影实现精准神经外科手术

1. 项目概述&#xff1a;这不是“删除记忆”&#xff0c;而是给大模型做一次精准的神经外科手术“Who is Harry Potter?”——这个看似简单的问答&#xff0c;恰恰成了检验大模型“概念遗忘”能力的黄金测试题。微软研究院这篇论文标题里藏着一个反直觉的事实&#xff1a;他们…...

选型必读丨高温定向传感器采购与使用的真实成本分析

在定向钻井设备采购决策中&#xff0c;价格往往不是唯一的考量因素。很多用户关注的是高温定向传感器的全生命周期总成本&#xff08;TCO, Total Cost of Ownership&#xff09;以及最终能带来怎样的投资回报&#xff08;ROI&#xff09;。本文将从专业角度&#xff0c;系统分析…...

避坑指南:用STM32F4的HAL库驱动L298N和TB6612,CubeMX配置有哪些关键点不同?

STM32F4电机驱动实战&#xff1a;L298N与TB6612的CubeMX配置差异全解析 在机器人底盘或智能小车开发中&#xff0c;电机驱动模块的选择直接影响着系统的响应速度、能耗效率和整体稳定性。作为两种经典的有刷直流电机驱动方案&#xff0c;L298N和TB6612在STM32F4开发中各有拥趸。…...

HTTPS明文调试实战:SSLKEYLOGFILE原理与浏览器配置指南

1. 为什么你抓不到HTTPS的明文——不是Wireshark不行&#xff0c;是浏览器在“加密保护”你很多人第一次尝试用Wireshark分析网页请求时&#xff0c;都会卡在一个看似简单却令人抓狂的问题上&#xff1a;HTTP流量清清楚楚&#xff0c;每个GET/POST、Header、Body都一览无余&…...