【C++】C++应用案例-旋转图像

news/2024/11/15 5:45:45/

        旋转图像的需求,在图片处理的过程中非常常见。我们知道对于计算机而言,图像其实就是一组像素点的集合,所以图像旋转的问题,本质上就是一个二维数组的旋转问题。

        我们可以给定一个二维数组,用来表示一个图像,然后将它顺时针旋转90°。例如,对于4×4的矩阵:

{

  { 5, 1, 9, 11},

  { 2, 4, 8, 10},

  { 13, 3, 6, 7},

  { 15, 14, 12, 16}

}

旋转之后变为:

{

  { 15, 13, 2, 5},

  { 14, 3, 4, 1},

  { 12, 6, 8, 9},

  { 16, 7, 10, 11}

]

根据数学上矩阵的特性,可以把矩阵A先做转置得到AT,然后再翻转每一行就可以了。

#include<iostream>
using namespace std;int main()
{const int n = 4;int image[n][n] = {{ 5, 1, 9, 11},{ 2, 4, 8, 10},{ 13, 3, 6, 7},{ 15, 14, 12, 16}};//1、矩阵转置for (int i = 0; i < n; i++) {for (int j = 0; j <= i; j++) {//以对角线为对称轴,两边元素进行互换int temp = image[i][j];image[i][j] = image[j][i];image[j][i] = temp;}}//2、对每一行进行前后翻转for (int i = 0; i < n; i++) {for (int j = 0; j < n / 2; j++) {int temp = image[i][j];image[i][j] = image[i][n-1-j];image[i][n-1-j] = temp;}}// 打印输出for (int i = 0; i < n; i++) {for (int j = 0; j < n; j++) {cout << image[i][j] << "\t";}cout << endl;}}

运行结果:


http://www.ppmy.cn/news/1499788.html

相关文章

.h264 .h265 压缩率的直观感受

1.资源文件 https://download.csdn.net/download/twicave/89579327 上面是.264 .265和原始的YUV420文件&#xff0c;各自的大小。 2.转换工具&#xff1a; 2.1 .h264 .h265互转 可以使用ffmpeg工具&#xff1a;Builds - CODEX FFMPEG gyan.dev 命令行参数&#xff1a; …

ElasticSearch(四)— 数据检索与查询

一、基本查询语法 所有的 REST 搜索请求使用_search 接口&#xff0c;既可以是 GET 请求&#xff0c;也可以是 POST请求&#xff0c;也可以通过在搜索 URL 中指定索引来限制范围。 _search 接口有两种请求方法&#xff0c;一种是基于 URI 的请求方式&#xff0c;另一种是基于…

在 ArchLinux 上编译运行 axmol 引擎

本文将在 Windows 10 上安装 Arch WSL 中编译 axmol 请确保 WSL2 已正确安装 1. 在微软应用商店安装 ArchLinux 2. 打开 Arch&#xff0c;按照提示输入用户名和密码&#xff0c;尽量简单 3. 配置清华源&#xff0c;速度快的起飞&#xff0c;否则&#xff0c;各种包会安装失败…

GLSL教程 第4章:编写第一个片段着色器

目录 4.1 片段着色器的作用 4.2 片段输出和颜色 4.3 编写第一个片段着色器的步骤 4.4 实际应用和调试 小结 在本章中&#xff0c;我们将学习如何编写一个基本的片段着色器。片段着色器是图形管线中的关键阶段&#xff0c;负责处理图形渲染中的每个像素&#xff08;即片段&…

【React】常见的 HOC 使用案例

高阶组件&#xff08;Higher-Order Component&#xff0c;HOC&#xff09;是一种用于在 React 中复用组件逻辑的技术。以下是几个常见的 HOC 使用案例&#xff0c;以及详细的代码示例。 1. 日志记录 HOC 这个高阶组件将在每次组件更新时记录日志。 LoggingHOC.js import Re…

物联网mqtt网关搭建背后的技术原理

前言 物联网是现在比较热门的软件领域&#xff0c;众多物联网厂商都有自己的物联网平台&#xff0c;而物联网平台其中一个核心的模块就是Mqtt网关。这篇文章的目的是手把手教大家写书写一个mqtt网关&#xff0c;后端存储支持Kafka/Pulsar&#xff0c;支持mqtt 连接、断链、发送…

React 学习——条件渲染、遍历循环、事件绑定

React特点&#xff1a; 声明式的设计高效&#xff0c;采用虚拟DOM来实现DOM的渲染&#xff0c;最大限度减少DOM的操作灵活&#xff0c;跟其他库灵活搭配使用JSX&#xff0c;俗称JS里面写HTML&#xff0c;JavaScript语法的扩展组件化&#xff0c;模块化&#xff0c;代码容易复用…

【Golang 面试基础题】每日 5 题(三)

✍个人博客&#xff1a;Pandaconda-CSDN博客 &#x1f4e3;专栏地址&#xff1a;http://t.csdnimg.cn/UWz06 &#x1f4da;专栏简介&#xff1a;在这个专栏中&#xff0c;我将会分享 Golang 面试中常见的面试题给大家~ ❤️如果有收获的话&#xff0c;欢迎点赞&#x1f44d;收藏…