首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >C语言之图像旋转

C语言之图像旋转

作者头像
闪电gogogo
发布于 2018-08-21 09:21:14
发布于 2018-08-21 09:21:14
2.7K01
代码可运行
举报
运行总次数:1
代码可运行

最近用到了图像向左或者向右旋转90°的情况,纠结了好一会儿,写下来供大家参考。

1 向左旋转90°

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//unsigned char *pImgData: 输入图像指针
//int WidthIn, int HeightIn:输入图像宽、高
//unsigned char *pImgOut: 旋转后图像指针
void RotateOfLeft(unsigned char *pImgData, int WidthIn, int HeightIn)
{
    int i, j, tempSize;
    int WidthOut  = HeightIn;
    int HeightOut = WidthIn;
    unsigned char pImgtemp[148*36];            
    for (i = 0; i < HeightIn; i ++)
    {
        for (j = 0;j < WidthIn; j ++)      
        {
            *(pImgtemp + i*WidthIn + j) = *(pImgData*WidthIn + j);
        }      
    }  
    //memcpy(pImgtemp,pImgData,148*36);
    for (i = 0; i < HeightOut; i ++)
    {
        for (j = 0;j < WidthOut; j ++)      
        {
            *(pImgData + i*WidthOut + j) = *(pImgtemp + (j+1)*WidthIn - 1 - i);
        }          
    }
}

2 向右旋转90°

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//unsigned char *pImgData: 输入图像指针
//int WidthIn, int HeightIn:输入图像宽、高
//unsigned char *pImgOut: 旋转后图像指针
void RotateOfRight(unsigned char *pImgData, int WidthIn, int HeightIn, unsigned char *pImgOut)
{
    int i, j;
    int WidthOut  = HeightIn;
    int HeightOut = WidthIn;
    for (i = 0; i < HeightOut; i ++)
    {
        for (j = 0;j < WidthOut; j ++)      
        {
            *(pImgOut + i*WidthOut + j) = *(pImgData + (HeightIn - j - 1)*WidthIn + i);
        }          
    }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-08-10 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
09:图像旋转翻转变换
09:图像旋转翻转变换 总时间限制: 1000ms 内存限制: 65536kB描述 给定m行n列的图像各像素点灰度值,对其依次进行一系列操作后,求最终图像。 其中,可能的操作及对应字符有如下四种: A:顺时针旋转90度; B:逆时针旋转90度; C:左右翻转; D:上下翻转。 输入第一行包含两个正整数m和n,表示图像的行数和列数,中间用单个空格隔开。1 <= m <= 100, 1 <= n <= 100。 接下来m行,每行n个整数,表示图像中每个像素点的灰度值,相邻两个数之间用单个空格隔开。灰度值
attack
2018/04/03
1.8K0
C语言指针——练习
该函数通过一个while循环来遍历字符串,每遍历一个字符,计数器len就加1。当遍历到字符串的结尾字符'\0'时,循环结束,函数返回计数器的值,即字符串的长度。 
小李很执着
2024/06/15
1070
C语言指针——练习
杨校老师课堂之C++备战全国青少年科技教育成果展示大赛(二)
主题:“科技强国・未来有我”。 目标: 坚持立德树人根本任务,培养具有家国情怀、崇尚科学的新时代好少年。 宗旨: 彰显公益普惠风尚,助力全面实施素质教育,为建设高质量教育体系贡献力量。
杨校
2025/05/03
1310
杨校老师课堂之C++备战全国青少年科技教育成果展示大赛(二)
百问FB显示开发图像处理 - 图像调整
图像缩放算法有很多种,这里参考网友"lantianyu520"所著的"图像缩放算法"。
阿志小管家
2024/12/03
2770
百问FB显示开发图像处理 - 图像调整
[c语言日寄]字符串的左旋与右旋
在C语言中,字符串操作是一个非常重要的主题,它不仅涉及到基础的字符处理,还涉及到算法设计和数据结构的运用。今天,我们通过一个有趣的题目——判断一个字符串是否为另一个字符串旋转后的字符串,来深入探讨字符串的左旋与右旋操作。这个问题不仅能帮助我们理解字符串的基本操作,还能锻炼我们的算法思维。接下来,我们将从题目引入、子功能介绍、注意事项、题目分析解答以及拓展应用五个方面展开讨论。
siy2333
2025/02/17
530
[c语言日寄]字符串的左旋与右旋
Go项目开发----2048小游戏(上)
刚接触go语言不久,前段时间看到一个2048的项目开发教程,于是就试着练了下手。我的环境采用的是Ubuntu Linux环境。 源码下载: https://github.com/shiyanlou/golang2048_game.git http://download.csdn.net/detail/hzy305365977/8067803 项目开发详细教程: http://www.shiyanlou.com/courses/type/1 一. 2048 游戏设计 《2048》由19岁的意大利人Gabrie
李海彬
2018/03/22
2.2K0
Linux应用开发【第二章】图像处理应用开发
​ 前言:所有的图像文件,都是一种二进制格式文件,每一个图像文件,都可以通过解析文件中的每一组二进制数的含义来获得文件中的各种信息,如图像高度,宽度,像素位数等等。只是不同的文件格式所代表的二进制数含义不一样罢了。我们可以通过UltraEdit软件打开图像文件并查看里面的二进制数排列。
韦东山
2021/12/15
1.1K0
Linux应用开发【第二章】图像处理应用开发
[C语言]结构体进阶与枚举联合
有时候我们需要将不同类型的数据组合成一个有机的整体,如:一个学生有学号、姓名、性别、年龄、地址等属性.显然单独定义以上变量比较繁琐,数据不便于管理,C语言中给出了另一种构造数据类型——结构体.
IT编程爱好者
2023/04/12
6780
[C语言]结构体进阶与枚举联合
一文掌握 YUV 图像的基本处理
YUV 是一种色彩编码模型,也叫做 YCbCr,其中 “Y” 表示明亮度(Luminance),“U” 和 “V” 分别表示色度(Chrominance)和浓度(Chroma)。
字节流动
2020/06/01
3.4K0
2048小游戏C语言实现
conio.h参考c4droid-code/conio.h at main · qaiu/c4droid-code · GitHub
QAIU
2023/03/14
1.5K0
C语言之图像文件的属性
本项目的目标是编写一个 C 语言程序,能够读取 BMP 格式的图像文件,并提取图像的基本属性,如宽度、高度、颜色深度等。程序需要解析文件格式并提取属性,但不需要对图像进行渲染或处理。
LucianaiB
2025/01/24
1290
C语言之图像文件的属性
C语言指针的作业
杨氏矩阵:有一个数字矩阵,矩阵的每行从左到右是递增的,矩阵从上到下是递增的,请编写程序在这样的矩阵中查找一个数字是否存在。要求:时间复杂度小于O(N)。
愷龍
2023/10/16
2860
C语言指针的作业
基于FPGA的图像旋转设计
图像旋转是指图像按照某个位置转动一定角度的过程,旋转中图像仍保持这原始尺寸。图像旋转后图像的水平对称轴、垂直对称轴及中心坐标原点都可能会发生变换,因此需要对图像旋转中的坐标进行相应转换。
数字积木
2021/04/15
1.2K0
图像旋转
问题描述 试题编号: 201503-1 试题名称: 图像旋转 时间限制: 5.0s 内存限制: 256.0MB 问题描述: 问题描述   旋转是图像处理的基本操作,在这个问题中,你需要将一个图像逆时针旋转90度。   计算机中的图像表示可以用一个矩阵来表示,为了旋转一个图像,只需要将对应的矩阵旋转即可。 输入格式   输入的第一行包含两个整数n, m,分别表示图像矩阵的行数和列数。   接下来n行每行包含m个整数,表示输入的图像。 输出格式   输出m行,每行包含n个整数,表示原始矩阵逆时针旋转90度后的矩阵。 样例输入 2 3 1 5 3 3 2 4 样例输出 3 4 5 2 1 3 评测用例规模与约定   1 ≤ n, m ≤ 1,000,矩阵中的数都是不超过1000的非负整数。
geekfly
2022/05/06
1.1K0
算法刷题-回文数、找出小于平均值的数、旋转图像(C_C++)
给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。 回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。
共饮一杯无
2023/02/10
3660
算法刷题-回文数、找出小于平均值的数、旋转图像(C_C++)
旋转图像
说明: 你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。
木瓜煲鸡脚
2021/01/18
1.5K0
旋转图像
【C语言经典例题】——程序员必须会的经典基础例题(三)
思路: 我们可以看到,三角的两边都是1,并且从第二行(从0开始算)开始,两边之间的数字,都是上一行的两位数字之和,比如第三行的数字3,等于上一行的1+2,等等。如此,把它看成一个二维数组,便可直接入手
诺诺的包包
2023/02/20
7440
初识C语言·内存函数
紧接字符串函数,出场的是第一个内存函数memcpy。前面讲的字符串函数是专门干关于字符串的事的,而这个函数可以干strcpy一样的事,但是区别就是它碰到\0也会继续复制。
_lazy
2024/10/16
1420
初识C语言·内存函数
图像处理-图像滤波
加性噪声一般指热噪声、散弹噪声等,它们与信号的关系是相加,不管有没有信号,噪声都存在。
AomanHao
2022/01/14
6K0
HDUOJ----旋转的二进制
旋转的二进制 Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other) Total Submission(s) : 46   Accepted Submission(s) : 10 Font: Times New Roman | Verdana | Georgia Font Size: ← → Problem Description 给定一个自然数M,及其二进制长度N,得到一个N位的二进制串     b1
Gxjun
2018/03/22
6550
相关推荐
09:图像旋转翻转变换
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档