虹软人脸识别,其方法要传NV21格式的byte[], github上有一个虹软的Demo,是不是虹软工作人员写的不清楚,这个Demo里bitmap转NV21格式byte[]用的是一个第三方库https://github.com/gqjjqg/android-extend,
用法如下:

ImageConverter convert = new ImageConverter();
convert.initial(mBitmap.getWidth(), mBitmap.getHeight(), ImageConverter.CP_PAF_NV21);
if (convert.convert(mBitmap, data)) {Log.d(TAG, "convert ok!");
}
convert.destroy();
!

本来是没有问题,但是我这边需求是大量检测照片,所以会频繁多次调用这个方法,以900次为例,在某些平板上是没有问题的,但是个别平板在100次左右时会报错:

07-18 21:44:53.719 6365-6609/cn.gxh.face A/libc: invalid address or address of corrupt block 0xb80402f8 passed to dlfreeFatal signal 11 (SIGSEGV), code 1, fault addr 0xdeadbaad in tid 6609 (pool-2-thread-2)
07-18 21:44:53.820 175-175/? E/DEBUG: Failed to find a valid tombstone, default to using tombstone 0.failed to open tombstone file '/data/tombstones/tombstone_00': No such file or directory

解决方法:可以换一个转换方法。

public byte[] getNV21(int inputWidth, int inputHeight, Bitmap scaled) {int[] argb = new int[inputWidth * inputHeight];scaled.getPixels(argb, 0, inputWidth, 0, 0, inputWidth, inputHeight);byte[] yuv = new byte[inputWidth * inputHeight * 3 / 2];encodeYUV420SP(yuv, argb, inputWidth, inputHeight);return yuv;}private void encodeYUV420SP(byte[] yuv420sp, int[] argb, int width, int height) {int frameSize = width * height;int yIndex = 0;int uvIndex = frameSize;int R, G, B, Y, U, V;int index = 0;for (int j = 0; j < height; j++) {for (int i = 0; i < width; i++) {R = (argb[index] & 0xff0000) >> 16;G = (argb[index] & 0xff00) >> 8;B = (argb[index] & 0xff);// well known RGB to YUV algorithmY = ((66 * R + 129 * G + 25 * B + 128) >> 8) + 16;U = ((-38 * R - 74 * G + 112 * B + 128) >> 8) + 128;V = ((112 * R - 94 * G - 18 * B + 128) >> 8) + 128;yuv420sp[yIndex++] = (byte) ((Y < 0) ? 0 : ((Y > 255) ? 255 : Y));if (j % 2 == 0 && index % 2 == 0 && uvIndex < yuv420sp.length - 2) {yuv420sp[uvIndex++] = (byte) ((V < 0) ? 0 : ((V > 255) ? 255 : V));yuv420sp[uvIndex++] = (byte) ((U < 0) ? 0 : ((U > 255) ? 255 : U));}index++;}}}

经测试,可用。

ImageConverter引起的 invalid address or address of corrupt block 0xb7feab58 passed to dlfree相关推荐

  1. Android之invalid address or address of corrupt block 0xabb494a0 passed to dlfree崩溃解决办法

    1.问题 手机崩溃 invalid address or address of corrupt block 0xabb494a0 passed to dlfree Fatal signal 11 (S ...

  2. Linux: crash: invalid kernel virtual address: ffffffffb54b75b0 type: “cpu_possible_mask“

    文章目录 错误 原因之一,是版本不匹配 另一个原因 错误 [root@rh7_drop_server mzhan017]# crash /usr/lib/debug/lib/modules/3.10. ...

  3. html语言的address,HTML: address 标签

    HTML: 标签 HTML 标记定义了HTML文档中最接近的 或 的联系信息.传统上,浏览器将在 标记中找到的文本呈现为斜体文本.此标记通常也称为 元素. 在线示例 nhooo.com 的联系信息: ...

  4. android tombstone发生过程,Android Tombstone 分析

    1.什么是tombstone 当一个动态库(native 程序)开始执行时,系统会注册一些连接到 debuggerd 的 signal handlers,当系统 crash 的时候,会保存一个 tom ...

  5. addr2line 和 tombstone问题分析

    做安卓开发的同学对于tombstone问题应该是很熟悉了,但是对于如何排查和分析值得总结和整理的,这篇文章对入门安卓开发的技术来说是个入门指导,同时对安卓开发的中高级开发也有借鉴. 首先我们来说下什么 ...

  6. Android常见系统问题分析工具

    bugreport bugreport会收集系统中的相关信息 系统build相关信息 内存/CPU/进程等信息 kernel log system log event log tombstones信息 ...

  7. Android冻结程序,Android Studio 3.0和应用程序冻结

    我已经将我的 android工作室从2.x更新到android 3.0 stable. 从那时起,当我尝试使用cyanogenmod 12.1(android 5.1.1)将应用程序推送到我的Nexu ...

  8. Android Tombstone 分析

    1.什么是tombstone 当一个动态库(native 程序)开始执行时,系统会注册一些连接到 debuggerd 的 signal handlers,当系统 crash 的时候,会保存一个 tom ...

  9. Android知识点 400 -- /data/tombstones

    原文地址 https://www.cnblogs.com/CoderTian/p/5980426.html 返回知识列表 Android知识点list tombstone一般是由Dalvik错误.状态 ...

最新文章

  1. PL/pgSQL学习笔记之九
  2. php项目包导入项目,zend studio导入项目文件的图文操作
  3. ffmpeg-URL(转)
  4. linux服务器程序乱码,Linux安装GBK/GB2312程序显示乱码的五种解决方法
  5. 小程序文章怎么导出来_宠物小程序怎么进行盈利
  6. 《数值分析》学习笔记 ·003——数值计算中应该注意的几个问题
  7. GeoWebCache之单独部署arcgis瓦片
  8. java实现数据的Excel导出(合并单元格、样式等)
  9. Drug X跨越鸿沟:一个生物科学家的新药研发跋涉记
  10. TDL、CDL信道模型简述
  11. PS 打开黑屏怎么办?
  12. STC15W201S串口蓝牙通信PWM控制RGB彩灯
  13. 此生不戒多巴胺—冲刺总结
  14. micropython 常量_MicroPython添加Module(二)
  15. linux制作U盘win10启动盘
  16. 昆山杜克大学IT/AV Analyst Entry-level面经
  17. win98系统常见问题解决方法(转)
  18. 离散数学考前复习:(五)图
  19. PMP海量题库免费在线练习
  20. INF文件是什么(转)

热门文章

  1. 马云的至暗时刻:支付宝事件、十月围城 | 阿里巴巴20年
  2. 关于高电平与低电平的使用
  3. GB28181平台对接接口详解
  4. 计算机组成原理选择题
  5. 线性代数 - 矩阵形式下的最小二乘法
  6. 核心单词Word List 50
  7. 标准日本语第二十三课
  8. 【C++/CPP】OpenCV丨2. 常用操作丨1. 创建Mat丨
  9. 实例:用C#.NET手把手教你做微信公众号开发(12)--带参数二维码裂变推广
  10. Eclipse中出现-访问限制由于对必需的库XX具有一定限制,因此无法访问类型