图像旋转翻转变换

1128:图像模糊处理--信息学一本通(c++) NOIP信息学奥赛资料下载 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 12795 通过数: 5444 【题目描述】 给定n行m列的图像各像素点的灰度值,要求用如下方法对其进行模糊化处理: 1.四周最外侧的像素点灰度值不变; 2.中间各像素点新灰度值为该像素点及其上下左右相邻四个像素点原灰度值的平均(舍入到最接近的整数)。 【输入】 第一行包含两个整... 阅读详情

题目描述

给定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;
}

题目:图像模糊处理 注意四舍五入的方法 阅读详情

相关推荐

09:图像旋转翻转变换

09:图像旋转翻转变换 总时间限制: 1000ms 内存限制: 65536kB 描述 给定m行n列的图像各像素点灰度值,对其依次进行一系列操作后,求最终图像。 其中,可能的操作及对应字符有如下四种: A:顺时针旋转90度; B:逆时针旋转90度; C:左右翻转; D:上下翻转。 输入第一行包含两个正整数m和n,表示图

ljf_study的博客 3280

图像翻转变换

65536K 蒜头君给定 mm 行 nn 列的图像各像素点灰度值,对其依次进行一系列操作后,求最终图像。 其中,可能的操作及对应字符有如下四种: A:顺时针旋转 9090 度; B:逆时针旋转 9090 度; C:左右翻转; D:上下翻转。 输入格式 第一行包含两个正整数 mm 和 nn,表示图像的行数和列数,中间用单个空格隔开。1 \le m \le 100, 1 \le n \le 1001≤...

weixin_44219201的博客 1199

opencv 图像平移、缩放、旋转、翻转 图像仿射变换

图像几何变换 图像几何变换从原理上看主要包括两种:基于2x3矩阵的仿射变换(平移、缩放、旋转、翻转)、基于3x3矩阵的透视变换。 图像平移 opencv实现图像平移 实现图像平移,我们需要定义下面这样一个矩阵,tx和ty分别是x和y方向上平移的距离: 图像平移利用仿射变换函数 cv.warpAffine() 实现 实验 # 图像平移 import numpy as np import c...

Ibelievesunshine的博客 3665

CCF NOI1068. 图像旋转翻转变换 (C++)

1068. 图像旋转翻转变换 题目描述 给定m行n列的图像各像素点灰度值,对其依次进行一系列操作后,求最终图像。 其中,可能的操作有如下四种: A:顺时针旋转90度; B:逆时针旋转90度; C:左右翻转; D:上下翻转。 输入 第一行包含两个正整数m和n,表示图像的行数和列数,中间用单个空格隔开。1 &amp;amp;amp;lt;= m &amp;amp;amp;lt;= 100, 1 &amp;amp;amp;lt;= n &amp;amp;amp;l

jiafengfu的优快云博客 1935

python之详细图像仿射变换讲解(图像平移、旋转、缩放、翻转),一文就够了,赶紧码住

图像仿射变换仿射变换简介什么是放射变换图像平移公式推导例程演示代码图像平移v2图像旋转利用getRotationMatrix2D实现旋转演示代码利用wrapAffine实现缩放数学原理推导代码演示围绕任意点进行旋转数学原理推导代码演示图像缩放利用resize函数实现缩放 仿射变换简介 什么是放射变换 图像上的仿射变换, 其实就是图片中的一个像素点,通过某种变换,移动到另外一个地方。 从数学上来讲, 就是一个向量空间进行一次线形变换并加上平移向量, 从而变换到另外一个向量空间的过程。 向量空间m : m=(x

左手の明天的博客 3305

bmp图像处理

关于图像旋转,并不难。只需要搞清楚像素坐标变换公式就行。我以图像的中心点为坐标原点。先把像素在目标图像中的位置变化为坐标系中的位置,做旋转变换求出变换之前的在坐标系中的坐标,再变换为在图片中的位置。 ---------------------

opencv学习——图像翻转,旋转,仿射变换

仿射变换是一种线性变换,它保持了图像中的平行线仍然平行,但可以改变图像的大小、旋转角度和平移位置。仿射变换可以由平移、旋转、缩放和剪切组成。

2503_90200493的博客 2045

超实用!用ChimeraX对AlphaFold 结果可视化(中): 蛋白结构美化篇

而一般需要的背景颜色是无色(白色),有三种方法可以更改背景颜色,这里我们介绍两种方法,第三种在下一小节中讲解。如果想选中蛋白链中的某一结构区域或者某些位点,可以用Ctrl+Shift+鼠标左键,或在软件窗口中点击。在这个窗口中可以对蛋白的主链、侧链、表面等颜色进行修改,只用在。,即可在右下角看到我们蛋白的序列信息,在这里面直接用鼠标选择要选择的结构域。就会有更多的颜色供我们选择,如果有特定的色号还可以在这个界面继续选择。后面的颜色(②),就可以选择想要的任何背景颜色(③)。就可以选择软件推荐的常用颜色。

m0_63153079的博客 5493

python opencv 图像透视变换,图像平移,图像旋转,图像翻转

# mark_x1 = 90, mark_y1 = 23 # 左上 # mark_x2 = 837, mark_y2 = 31 # 右上 # mark_x3 = 46, mark_y3 = 491 # 左下 # mark_x4 = 858, mark_y4 = 499 # 右下 img_path = r"C:\Users\RoseC\Desktop\img\ba...

luolinll1212的专栏 1757

【技术笔记】Cadence实现Orcad与Allegro软件交互式布局设置

为了达到原理图和PCB两两交互的功能,需要在ORCAD中将允许交互进行勾选,这样才可以,执行菜单命令Options-Preference后,我们打开参数界面,进行选择Miscellaneous菜单,将交互模式进行勾选。在做硬件pcb设计的时候,原理图选中一个元器件,希望可以再PCB中可以直接选中。对于网表必须是导入第一方网表,第三方是无效的。在allegro中使能/关闭交互式布局功能。

weixin_50499137的博客 2082

关于MII、RMII、GMII、RGMII、PHY、网络变压器、RJ45的硬件总结

文章目录前言一、网络传输结构及原理1.以太网的工作原理2.TCP/IP协议3.数据链路层(MAC)二、介质独立接口MII,RMII,GMII,RGMII1.MII(Media Independent interface)2.RMII(Reduced Media Independent Interface)3.GMII(Gigabit Medium Independent)4.RGMII(Reduced Gigabit Media Independent Interface)三、物理层芯片(PHY)二、使用步

weixin_44415816的博客 3万+

【OpenCV3】图像的翻转、图像的旋转、仿射变换之图像平移、仿射变换之获取变换矩阵、透视变换

getAffineTransform(src[], dst[]) 通过三点可以确定变换后的位置, 相当于解方程, 3个点对应三个方程, 能解出偏移的参数和旋转的角度.仿射变换是图像旋转, 缩放, 平移的总称.具体的做法是通过一个矩阵和和原图片坐标进行计算, 得到新的坐标, 完成变换. 所以关键就是这个矩阵.getPerspectiveTransform(src, dst) 获取透视变换的变换矩阵, 需要4个点, 即图片的4个角.仿射变换的难点就是计算变换矩阵, OpenCV提供了计算变换矩阵的API。

linjun的博客 1695

NVMe-MI --- Message Servicing Model(消息服务模型)

本文主要介绍NVMe-MI消息服务模型,两个主要类别是请求消息和响应消息。并介绍带外机制消息服务状态机。

智小星的博客 2015

opencv图像变换(缩放,翻转,旋转,平移,仿射变换,透视变换)

dst是用c++写时要传入的参数,python不用dsize与fx,fy冲突:只设置一个就可以,都写上默认dsize400:400缩放比例不好,修改一下按照原图比例缩放注意:shape按照高宽描述;dsize按宽高描述shape;dsize;按照3:1缩放此时dszie为none;

Z503Z的博客 1532

实战:如何用MIPI CSI-2高效传输RAW10图像数据(附带宽优化技巧)

本文深入探讨了MIPI CSI-2协议在RAW10图像数据传输中的高效应用,详细解析了4像素5字节打包机制及其带宽优化技巧。通过动态Lane分配、位深度自适应压缩和虚拟通道交错传输等实战方法,显著提升传输效率,适用于IoT摄像头开发等低功耗场景。

css33的专栏 732

海上通信技术发展与研究综述

通过对海浪模型、节点运动特性、天线辐射特性等进行特征深度学习,考虑改变有效链路的持续时间、业务类型和容量的区别,以及卫星和节点的仰角等,改变通信策略,设计动态波束成形算法,优化折中浮标天线增益和波束宽度,适应海上环境,尤其是海浪运动时变的特性。目前的海上通信系统,同时包括海上无线通信系统、卫星通信系统、岸基通信系统、船载基站通信系统、空中基站通信系统等不同方法组成的通信系统来满足不同的需求,如海上无线通信系统通信成本低廉、卫星通信系统具有广域的覆盖范围、岸基通信网络可以实现数据高速传输。

weixin_70923796的博客 1001

opencv-python 详解图像的几何变换缩放、平移、旋转、翻转

图像的几何变换缩放、平移、旋转、翻转

RayChiu757374816的博客 5762

CANoe制作网关实现CAN(FD)报文故障注入(报文长度/timeout/信号错误/E2E)2

CANoe制作网关实现CAN报文故障注入(报文长度/timeout/信号错误/E2E) 2.新建CANoe工程 3.透传功能 4.故障注入panel面板 5.CAPL代码 5.1故障注入开始、停止、定时 5.2DLC故障注入 5.3 Timeout故障注入 5.4 信号故障注入

天赐好车的博客 3680

HarmonyOS开发中的图像变换:旋转、翻转、缩放、裁剪与矩阵变换

想象一下这个场景:你在开发一个图片编辑器,用户拍了张照片,发现歪了——想旋转 15 度;又觉得左右反了——想水平翻转;还想把远处的人放大看看——要缩放;最后只想要中间那块——得裁剪。这些操作有个共同点:它们都在改变图像的几何结构,而不是改变像素的颜色值。这就是"图像变换"和"图像滤镜"的本质区别——变换改的是"位置",滤镜改的是"颜色"。HarmonyOS 的 PixelMap 提供了一套完整的变换 API,从简单的旋转翻转,到复杂的矩阵变换,基本覆盖了日常开发的所有需求。但这里面有不少细节值得深挖,比如旋

Jack20的博客 1万+

手把手教你学 NPU 驱动开发--第一部分:基础准备 开发环境搭建:Linux 内核编译与 NPU 仿真平台配置

摘要:本文详细介绍了搭建Linux内核编译与NPU仿真平台的完整流程。主要内容包括:1) 准备ARM64交叉编译工具链;2) 编译支持KGDB调试的Linux内核;3) 构建最小根文件系统;4) 使用QEMU模拟自定义NPU设备;5) 配置KGDB调试环境。文章重点讲解了如何通过修改设备树添加虚拟NPU设备,并提供了开源NPUIP Gemmini作为实验对象。最后展示了简单的"Hello NPU"驱动验证方法,为后续NPU驱动开发奠定了基础。文中还附有常用命令速查表,方便开发者快速搭建调

MHD0815的博客 384

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

【OpenCV基础】图像翻转和旋转变换

API- flip 函数原型: void flip(InputArray src, OutputArray dst, int flipCode) 参数含义: src,输入矩阵 dst,翻转后矩阵,类型与src一致 flipCode,翻转模式,flipCode==0垂直翻转(沿X轴翻转),flipCode>0水平翻转(沿Y轴翻转),flipCode<0水平垂直翻转(先沿X轴翻转,再沿Y轴翻转,等价于旋转180°) ...

欢迎时常光顾我的干货超市,热衷于AIoT!! 1738

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

1068. 图像旋转翻转变换

题目描述 给定m行n列的图像各像素点灰度值,对其依次进行一系列操作后,求最终图像。 其中,可能的操作有如下四种: A:顺时针旋转90度; B:逆时针旋转90度; C:左右翻转; D:上下翻转。 输入 第一行包含两个正整数m和n,表示图像的行数和列数,中间用单个空格隔开。1 &amp;amp;lt;= m &amp;amp;lt;= 100, 1 &amp;amp;lt;= n &amp;amp;lt;= 100。 接下来m行,每行n个...

sunny_pei的博客 4426

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

NOI题库 09:图像旋转翻转变换

NOI题库 图像旋转翻转变换

DaD3zZ , To be a Beyonder! 3100

Opencv-C++笔记 (16) : 几何变换 (图像的翻转(镜像),平移,旋转,仿射,透视变换)

opencv

jiyanghao19的博客 5377
上一篇: 求最大、小值和查找
下一篇: vector动态数组
B757-300
博客等级 码龄4年 259粉丝 52原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值