C语言之图像旋转

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

1 向左旋转90°

//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°

//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);
        }          
    }
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏贾志刚-OpenCV学堂

基于OpenCV实现手写体数字训练与识别

OpenCV实现手写体数字训练与识别 机器学习(ML)是OpenCV模块之一,对于常见的数字识别与英文字母识别都可以做到很高的识别率,完成这类应用的主要思想与方...

6176
来自专栏ATYUN订阅号

【教程】OpenCV—Node.js教程系列:用Tensorflow和Caffe“做游戏”

? 今天我们来看看OpenCV的深度神经网络模块。如果你想要释放神经网络的awesomeness来识别和分类图像中的物体,但完全不知道深度学习如何工作,也不知...

5318
来自专栏大数据挖掘DT机器学习

tensorflow系列笔记:流程,概念和代码解析

tensorflow是google在2015年开源的深度学习框架,可以很方便的检验算法效果。这两天看了看官方的tutorial,极客学院的文档, http://...

4139
来自专栏人工智能LeadAI

线性回归与最小二乘法 | 机器学习笔记

这篇笔记会将几本的线性回归概念和最小二乘法。 在机器学习中,一个重要而且常见的问题就是学习和预测特征变量(自变量)与响应的响应变量(应变量)之间的函数关系 ...

3517
来自专栏人人都是极客

Peter教你谈情说AI | 09决策树(下)—既能回归又能分类的模型

我们提取七个特征,用来判断一个形象,是人是猫。这七个特征包括:有否蝴蝶结;是否穿衣服;是否高过5个苹果;是否有胡子;是否圆脸;是否有猫耳朵;是否两脚走路。

952
来自专栏大数据挖掘DT机器学习

分类-回归树模型(CART)在R语言中的实现

CART模型 ,即Classification And Regression Trees。它和一般回归分析类似,是用来对变量进行解释和预测的工具,也是数据挖掘中...

4586
来自专栏菩提树下的杨过

机器学习笔记(5):多类逻辑回归-手动添加隐藏层

了解神经网络原理的同学们应该都知道,隐藏层越多,最终预测结果的准确度越高,但是计算量也越大,在上一篇的基础上,我们手动添加一个隐藏层,代码如下(主要参考自多层感...

2326
来自专栏程序生活

Char RNN原理介绍以及文本生成实践

下面是一个利用Char RNN实现写诗的应用,代码来自来自原先比较火的项目:https://github.com/jinfagang/tensorflow_po...

1331
来自专栏菩提树下的杨过

机器学习笔记(3):多类逻辑回归

仍然是 动手学尝试学习系列的笔记,原文见:多类逻辑回归 — 从0开始 。 这篇的主要目的,是从一堆服饰图片中,通过机器学习识别出每个服饰图片对应的分类是什么(比...

4608
来自专栏磐创AI技术团队的专栏

使用Keras进行深度学习:(一)Keras 入门

导语 Keras是Python中以CNTK、Tensorflow或者Theano为计算后台的一个深度学习建模环境。相对于其他深度学习的框架,如Tensorflo...

3826

扫码关注云+社区

领取腾讯云代金券