android camera yuv帧水平翻转
来源:互联网 发布:威迅java培训 编辑:程序博客网 时间:2024/06/06 00:40
Camera预览时需要对yuv帧做水平翻转处理,直接在 onPreviewFrame(byte[] data, Camera camera) 里调用Mirror函数,对原始yuv数组进行处理,处理完后的图片和预览效果成水平翻转关系。
nv21的镜像算法:
private void Mirror(byte[] src, int w, int h) { //src是原始yuv数组 int i; int index; byte temp; int a, b; //mirror y for (i = 0; i < h; i++) { a = i * w; b = (i + 1) * w - 1; while (a < b) { temp = src[a]; src[a] = src[b]; src[b] = temp; a++; b--; } } // mirror u and v index = w * h; for (i = 0; i < h / 2; i++) { a = i * w; b = (i + 1) * w - 2; while (a < b) { temp = src[a + index]; src[a + index] = src[b + index]; src[b + index] = temp; temp = src[a + index + 1]; src[a + index + 1] = src[b + index + 1]; src[b + index + 1] = temp; a+=2; b-=2; } } }
i420的镜像算法:
private void Mirror(byte[] src, int w, int h) { //src是原始yuv数组 int i; int index; byte temp; int a, b; //mirror y for (i = 0; i < h; i++) { a = i * w; b = (i + 1) * w - 1; while (a < b) { temp = src[a]; src[a] = src[b]; src[b] = temp; a++; b--; } } //mirror u index = w * h;//U起始位置 for (i = 0; i < h / 2; i++) { a = i * w / 2; b = (i + 1) * w / 2 - 1; while (a < b) { temp = src[a + index]; src[a + index] = src[b + index]; src[b + index] = temp; a++; b--; } } //mirror v index = w * h / 4 * 5;//V起始位置 for (i = 0; i < h / 2; i++) { a = i * w / 2; b = (i + 1) * w / 2 - 1; while (a < b) { temp = src[a + index]; src[a + index] = src[b + index]; src[b + index] = temp; a++; b--; } }}
I420,YV12,NV12,NV21均属于YUV420,以下为四种格式的排列顺序:
I420: YYYYYYYY UUVV =>YUV420PYV12: YYYYYYYY VVUU =>YUV420P
NV12: YYYYYYYY UVUV =>YUV420SP
NV21: YYYYYYYY VUVU =>YUV420SP
转载地址:http://www.jianshu.com/p/a1b5469a1f05
http://blog.csdn.net/lindonghai/article/details/78259862
阅读全文
0 0
- android camera yuv帧水平翻转
- android camera yuv帧水平翻转
- yuv图片旋转180度,镜像水平翻转
- android camera YUV转JPG图片存储
- Android 3D 水平翻转动画实现
- Android:关于mediacodec编码camera yuv数据帧率过低的问题
- android YUV Sensor配置Camera应用的flash auto菜单
- camera YUV格式
- 图片像素翻转。水平翻转,垂直翻转。
- Android动画分析之翻转效果(camera、gallery)
- 水平垂直翻转MC
- 设置水平/垂直翻转
- UIImageView 实现水平翻转
- CSS3 动画:水平翻转
- Androd Camera Yuv Jepg bmp
- html5 canvas 图片水平翻转
- UITableView水平翻转90°
- UIImageView实现图片水平翻转
- 二十三、sorted
- DNS原理总结及其解析过程详解
- CSS基础(8.position初识)
- Ubuntu安装部署mqtt
- 分块二分——BZO3343 教主的魔法
- android camera yuv帧水平翻转
- mysql unsigned int 避坑
- python numpy元素的区间查找
- Python tkinter多进程多线程前邮箱,再用pyinstaller编译成exe
- 使用LinqToExcel读取Excel
- 代码模拟手机与SIM卡的组合关系
- FragmentTabHost、Viewpager、Fragment使用过程中白屏问题及解决
- Spring中的@Value读取并注入配置信息
- IT的道德与伦理