近日,开发多款相机,在作视频流处理时,常用的流数据转换方法有以下几个函数。以作共享,欢迎讨论。

#define GFP_OPERATORIMAGEDATA_TYPE_INVERSE           1   // 反像图像数据
#define GFP_OPERATORIMAGEDATA_TYPE_HMIRROR          2   // 水平镜像图像数据
#define GFP_OPERATORIMAGEDATA_TYPE_VMIRROR          3   // 垂直镜像图像数据
#define GFP_OPERATORIMAGEDATA_TYPE_RU90IRROR        4   // 顺时针90度
#define GFP_OPERATORIMAGEDATA_TYPE_LD90IRROR        5   // 逆时针90度int MyVideo_OperatorImageDataEx(UCHAR* pImageData, int nw, int nh, int nBitCnt, UCHAR fOprType)
{if(nBitCnt != 24)return 0;UCHAR *pTmpData,  *pRowData, nSwap[3];int col, row, nMid, nrowLen, nOff;//  if(nBitCnt == 8)//        nrowLen = nw;//    elsenrowLen = nw * 3;switch(fOprType){case GFP_OPERATORIMAGEDATA_TYPE_INVERSE:pTmpData = pImageData;for(row = 0; row < nh; row++){for(col = 0; col < nrowLen; col++, pTmpData++){*pTmpData = ~(*pTmpData);}}return 1;case GFP_OPERATORIMAGEDATA_TYPE_HMIRROR:nMid = nw >> 1;pTmpData = pImageData;for(row = 0; row < nh; row++, pTmpData += nrowLen){for(col = 0, nOff = 0; col < nMid; col++, nOff += 3){memcpy(nSwap, pTmpData + nOff, 3);memcpy(pTmpData + nOff, pTmpData + (nw - 1 - col) * 3, 3);memcpy(pTmpData + (nw - 1 - col) * 3, nSwap, 3);}}return 1;case GFP_OPERATORIMAGEDATA_TYPE_VMIRROR:nMid = nh >> 1;pRowData = (UCHAR*)malloc(sizeof(UCHAR) *  nrowLen);if(NULL == pRowData)return 0;pTmpData = pImageData;for(row = 0; row < nMid; row++, pTmpData += nrowLen){memcpy(pRowData, pTmpData, nrowLen);memcpy(pTmpData, pImageData + (nh - 1 - row) * nrowLen, nrowLen);memcpy(pImageData + (nh - 1 - row) * nrowLen, pRowData, nrowLen);}free(pRowData);pRowData = NULL;return 1;case GFP_OPERATORIMAGEDATA_TYPE_RU90IRROR:{unsigned char* pData = (unsigned char*)malloc(3*nh*nw);memset(pData, 0, 3*nw*nh);int nLineLen = 3*nw;int nlineLen1 = 3*nh;//memcpy(pData, pImageData, 3*nh*nw);for(int i = 0; i < nh; i++) {for(int j = 0; j < nw; j++){memcpy(pData + j* nlineLen1 + (nh - i - 1)* 3, pImageData +i * nLineLen + j* 3, 3 );}}memcpy(pImageData, pData, 3*nh*nw);free(pData);pData = NULL;return 1;}case GFP_OPERATORIMAGEDATA_TYPE_LD90IRROR:{unsigned char* pData1 = (unsigned char*)malloc(3*nh*nw);memset(pData1, 0, 3*nw*nh);int nWLenth = 3*nw;int nHLenth = 3*nh;for( int i = 0; i < nh; i++ ){for(int j =0; j < nw; j++ ){//memcpy(pData1+(nh-1-j)*nWLenth + i*3, pImageData+i*nWLenth+j*3, 3);memcpy(pData1 + (nw-1-j)*nHLenth + i*3, pImageData + i*nWLenth + j*3, 3);}}memcpy(pImageData,pData1,3*nw*nh);free(pData1);pData1 = NULL;return 1;}}return 0;
}

RAW数据格式的图片转换--常用于相机开发和图片旋转相关推荐

  1. 如何将图片转换成表格?这有图片转换成表格好用方法

    如何将图片转换成表格?这有图片转换成表格好用方法 在日常办公和学习中,我们常常需要将图片中的表格转换成可编辑的文本格式.这时候,一些优秀的软件可以帮助我们快速地完成这项工作.你知道如何将图片转换成表格 ...

  2. php 把图片转换成二进制流,php把图片转换成二进制流的方法

    PHP中的isset() 函数用于检测变量是否已声明并且非 NULL.该函数返回布尔类型的值,即true/false.格式:bool isset ( mixed var [, mixed var [, ...

  3. python将图片转换成动漫,python实现图片转换成素描和漫画格式

    本文实例为大家分享了python实现图片转换成素描和漫画格式的具体代码,供大家参考,具体内容如下 原图 图片转换后的成果 源码 # -*- coding: utf-8 -*- import cv2 f ...

  4. python将图片转换成二进制文本_python将图片文件转换成base64编码的方法

    本文实例讲述了python将图片文件转换成base64编码的方法.分享给大家供大家参考.具体实现方法如下: import base64f=open(r'c:\jb51.gif','rb') #二进制方 ...

  5. python将图片转换成动漫_python实现图片转换成素描和漫画格式

    本文实例为大家共享了python实现图片转换成素描和漫画格式的详细代码,供大家参考,详细内容如下 原图 图片转换后的成果 源码 # -*- coding: utf-8 -*- import cv2 f ...

  6. base64图片转换工具类以及base转图片工具

    import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import ...

  7. OpenCV——将针孔相机模型图片转换成鱼眼相机模型图片

    一 理论基础 关于针孔相机模型,参考博客: 关于鱼眼相机模型,参考参考文献[1][2]. 这里只需要知道我们这里使用的鱼眼相机模型是等距投影的鱼眼相机模型,即r=fθ(1),而针孔相机模型是透视投影, ...

  8. 怎么在线给图片转换格式?分享一款图片转格式神器

    如何在线转换图片格式?通过使用图片转格式(https://www.yasuotu.com/geshi)工具-压缩图,就可以快速完成图片格式在线更改的操作,简单方便,高效便捷,具体操作步骤如下: 打开压 ...

  9. 详情页点击其中图片转换成幻灯片图文模式,图片对应文字。

    例如原本的详情页是这样的图文列表: 点击其中图片后要实现下列的效果: 不仅要在点击事件中定位到每张图片,还要把这个图片下的与其相关的介绍进行传值,并且显示出来.传递的数据有,所有图片地址,当前点击的图 ...

  10. 设计图片转换html5,在HTML5中翻转图片

    貌似 HTML5 的 Canvas 只提供了图片的旋转.缩放功能,没有提供图片翻转(水平翻转或垂直翻转)的支持,搜索加试验之后,得到几种实现图片翻转的方法,记录一下. 第一种最简单的是使用 CSS,代 ...

最新文章

  1. 服务器出口ip怎样修改,服务器出口ip设置
  2. 从V.C.Space抄来的
  3. 盘一盘推荐系统里值得一读的那些论文
  4. SpringData ElasticSearch入门案例
  5. 光学模拟 Android,基于Android的光学字符识别研究与实现
  6. 伪代码 嵌套循环_大学开始,跟着别人的代码敲对自己编程提高有用吗?
  7. 记录:注意Unity返回的所有数组,只是数组的副本
  8. 记录——《C Primer Plus (第五版)》第九章编程练习第九题
  9. python分配问题_1.1python解决数学建模之席位分配问题
  10. 学python lesson1
  11. UVa 10118 免费糖果(记忆化搜索+哈希)
  12. Jscript中文变量乱码,又一次中招 _
  13. python通讯录运用的知识点_Python实现通讯录功能
  14. 【转】C#正则表达式教程和示例
  15. 苹果激活锁怎么解除?手把手教你关闭激活锁
  16. Swift之利用API可用性解决App Extension无法编译
  17. kali安装网卡驱动
  18. 【GitLab】GitLab CI/CD 模型部署自动化超详细介绍
  19. python编程:从入门到实践 阅读笔记
  20. 云计算(Day 8)

热门文章

  1. Mysql常用技巧总结
  2. form表单提交到controller时出现404的尴尬问题(或链接不到.action、链接不到.do跳404的问题)
  3. 国密SM2非对称算法与实现
  4. 完全平方数-动态规划
  5. 【第六届强网杯CTF-Wp】
  6. 2018.09.02【BZOJ2227】【ZJOI2011】看电影 (高精度)(组合数)
  7. 酷派5890 ROM教程
  8. C51单片机的初次使用
  9. 【移动通信】信号强度单位dB和dBm
  10. 计算机键盘连接不上,电脑键盘连接不上电脑是怎么回事