风语的专栏

仗剑天下,快意恩仇

VLC卡死内存溢出解决

SurfaceTexture不直接显示图像流,而是转为GL外部纹理,因此可用于图像流数据的二次处理(如Camera滤镜,桌面特效等)。比如Camera的预览数据,变成纹理后可以交给GLSurfaceView直接显示,也可以通过SurfaceTexture交给TextureView作为View he...

2018-11-23 21:08:50

阅读数 1294

评论数 0

NEON优化——OpenCV WarpAffine最近邻

warpAffine一种典型的应用场景是将camera拍到的图像中人脸抠出来,通过变换输出一张正脸,然后再做一些人脸识别,关键点检测之类的运算。所以通常是输入尺寸固定,输出尺寸也固定,变的是转换矩阵。 最近邻的优势是计算量小,速度较快,问题是放大的情况下锯齿较明显,对于通常是缩小的应用场景最近邻...

2018-11-23 21:07:30

阅读数 441

评论数 0

NEON优化——OpenCV WarpAffine双线性插值

算法要点 warpAffine双线性插值和最近邻的区别 根据目标图像的某点坐标算出原始图像对应的点坐标后,最近邻是向下取整,双线性插值需要获得相邻的四个点坐标以及纵横方向的权重 最近邻直接拷贝原始图像点即可,双线性插值需要横竖加权 很显然计算量要比最近邻大一些,但是效果会更好,对于...

2018-11-23 21:04:34

阅读数 717

评论数 0

NEON优化——OpenCV Resize双线性插值

算法要点 一、基本原理 具体原理可以自行搜索,这里只大致描述一下,目标图像上某一个点按比例映射到原始图像上某一点,不过通常计算得到的原始点坐标不是整数,最近邻的做法是向下取整,而双线性差值的做法是取与该坐标最接近的上下左右四个点来线性加权,在放大的时候不会像最近邻那样锯齿严重,但是计算量会大不...

2018-11-23 20:59:50

阅读数 1454

评论数 1

Android Camera源码分析

回顾这半年做的项目基本都跟Camera有关,从手势识别控制空调,到人脸识别的门禁,都是围绕相机的数据处理和渲染。这里相机不限于本地的相机,还包括远程的RTSP相机,要将数据流拉到本地进行渲染。 这两天好好读了一下Camera的源码,大概理清了整体架构,总结了一下,其实没多少东西,Android的各...

2018-11-23 20:55:40

阅读数 676

评论数 0

Android视觉应用性能优化

计算机视觉在移动端的应用,典型的如手势识别,人脸识别,流程都差不多,都是利用移动端的相机采集数据,丢给算法层,根据识别的结果来做一些业务,中间可能还要做一些图形的渲染。 本文主要讨论这中间涉及到的一些问题以及优化的思路,算是对过往工作的总结吧。大致问题有以下五点: 一,相机采集数据的格式是NV...

2018-11-23 20:50:05

阅读数 84

评论数 0

Android BufferQueue原理分析

在Android中,BufferQueue是Surface实现本地窗口的关键,驻留在SurfaceFlinger进程中进行服务,下面从BufferQueue的结构开始分析, class BufferQueue : public BnGraphicBufferProducer, ...

2018-11-23 20:48:25

阅读数 968

评论数 0

从Camera源码看如何从Jni回调到Java层

通常设备层有数据或事件要通知到应用层是通过回调来完成的,可以采用的方式是直接调用java层类静态函数,或者调用java层某个对象的普通函数, 涉及几个问题: 1,内存泄露,引用问题 2,多线程问题 首先研究一下Camera的实现,首先打开Camera返回一个Camera对象,setPreviewC...

2018-11-23 20:45:15

阅读数 173

评论数 0

提示
确定要删除当前文章?
取消 删除