09:图像旋转翻转变换
时间:2022-05-07
本文章向大家介绍09:图像旋转翻转变换,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
09:图像旋转翻转变换
总时间限制: 1000ms 内存限制: 65536kB描述
给定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'为最终图像的列数。相邻两个整数之间用单个空格隔开。样例输入
2 3
10 0 10
100 100 10
AC
样例输出
10 100
0 100
10 10
1 #include<iostream>
2 #include<cstring>
3 #include<cstdio>
4 #include<cmath>
5 #include<queue>
6 #include<vector>
7 #include<algorithm>
8 using namespace std;
9 int n,m;
10 int c[1001][1001];
11 int b[1001][1001];
12 char zx[101];
13 void zh(char a)
14 {
15 if(a=='A')
16 {
17 for(int i=1;i<=n;i++)
18 {
19 for(int j=1;j<=m;j++)
20 {
21 b[j][n-i+1]=c[i][j];
22 }
23 }
24 }//顺时针旋转90度
25 if(a=='B')
26 {
27 for(int i=1;i<=n;i++)
28 {
29 for(int j=1;j<=m;j++)
30 {
31 b[m-j+1][i]=c[i][j];
32 }
33 }
34 }//逆时针旋转90度
35 if(a=='C')
36 {
37 for(int i=1;i<=n;i++)
38 {
39 for(int j=1;j<=m;j++)
40 {
41 b[i][m-j+1]=c[i][j];
42 }
43 }
44 }//左右翻转
45 if(a=='D')
46 {
47 for(int i=1;i<=n;i++)
48 {
49 for(int j=1;j<=m;j++)
50 {
51 b[n-i+1][j]=c[i][j];
52 }
53 }
54 }//上下翻转
55 memcpy(c,b,sizeof(c));
56 if(a=='A'||a=='B')swap(m,n);
57 }
58 int main()
59 {
60 cin>>n>>m;
61 for(int i=1;i<=n;i++)
62 {
63 for(int j=1;j<=m;j++)
64 {
65 cin>>c[i][j];
66 }
67 }
68 scanf("%s",&zx);
69 for(int i=0;i<strlen(zx);i++)
70 {
71 zh(zx[i]);
72 }
73 for(int i=1;i<=n;i++)
74 {
75 for(int j=1;j<=m;j++)
76 {
77 cout<<c[i][j]<<" ";
78 }
79 cout<<endl;
80 }
81 return 0;
82 }
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- webpack3 升级到 webpack4 小记
- BigData-Apache HBase数据库
- Tungsten Fabric知识库丨这里有18个TF补丁程序,建议收藏
- BigData-消息队列框架Apache Kafka入门、原理解析
- BigData--Apache Flume框架
- 【项目实战】DWS 层创建&数据接入
- BigData--Hive数据仓库工具
- 读书笔记——《深入浅出 Webpack》( 送 XMind导图和电子书)
- BigData--MapReduce进阶(二)之工作机制
- BigData--MapReduce进阶(一)之框架原理
- BigData--MapReduce入门
- BigData--分布式流数据流引擎Apache Flink
- 【项目实战】ADS 层数据导出
- 前端大杂货铺系列《七》
- BigData--大数据技术之Spark机器学习库MLLib