记录我第一次在Android开发图像处理算法的经历
大概是四月底的时候。有人加我QQ问我是否做能做一些基于图像皮肤检測的算法,
主要是实现对皮肤六项指标:
1. 水分
2. 有份
3. 痤疮与痘痘
4. 色斑与肤色
5. 皱纹
6. 毛孔
听到这些内容,我略微思考了一下,心里有了点思路,跟他交流了一下,关于怎么
做的思路就更加清晰起来,于是我先基于JAVA语言实现了第一版,然后把它改到
android上面。发现android代码修改非常小,就能够在android上执行我的測试程序
了。可是感觉速度非常慢。大概要十几秒才干出结果。发给了那个哥们。他測试了一
下也非常郁闷,说速度太慢了,准确率也不是非常高,怎么办。于是我细致对比了一下
。发现我用Java语言实现时。在桌面版都是基于int来处理RGB像素的每一个通道数
据,android上面DVM这么玩就有点卡。于是我就所有改成了每一个通道基于BYTE
来实现处理,然后添加了皮肤检測,这样过滤非SKIN像素。再降採样处理整个
Bitmap数据,果然速度非常快了,仅仅要三秒左右就能够出结果,连我自己都认为
自己是大神了,然后就想把android的人脸检測加上去,实现分块检測,这样
能够更好的检測人脸皱纹类型。经过一番各种坑之后,android上的人脸检測
API我学会了使用,可是发现速度不给力,加上去等于作茧自缚。于是我又放
弃了。
又经过一番各种调试,别人帮忙把相机功能加上了,这样就实现了拍
照直接检測出结果,于是第二个问题出现了。常常出现APP闪退,我哭,经
过一番測试,发现低分辨率时候才会出现闪退,后来我才明确问题出在我对
低分辨率进行降採样,已经超出了像素范围,我哭!
攻克了之后闪退问题就
不见了,最终能够正常执行了,也能够正常測试了:
測试程序中的效果截屏:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvamlhMjAwMDM=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="" />
这个就是拍照检測的结果,
原理都是常见的图像处理算法,能够说本人的博客文章已经包括了该应用的所有
图像处理算法知识,仅仅是怎样活学活用取决于大家都图像处理问题的认知与理解。
通过该算法的开发,我第一次将我学到的图像处理知识应用到实践之中用于解决
实际问题。同一时候也发现真实图像处理问题,不是一步算法就能够实现的,而是一
系列图像处理算法的综合运用。
记录我第一次在Android开发图像处理算法的经历的更多相关文章
- 实验四:Android 开发基础
实验四:实验报告 课程:程序设计与数据结构 班级: 1623 姓名: 张旭升 学号:20162329 指导教师:娄嘉鹏 王志强 实验日期:5月26日 实验密级: 非密级 预习程度: 已预习 必修/选修 ...
- 调研android开发环境的发展演变
这是第一次接触android开发,特意上网搜索视频进行了自身知识补充,觉得说视频做得很不错,从android的发展历程以及一些基本常识都讲得很详细,也很有趣,也所以拿出来同大家一起分享学习,网址是:h ...
- Android开发技术周报182学习记录
Android开发技术周报182学习记录 教程 App安全二三事 记录 为什么要安全 App的移动安全主要包括下面几种: 密钥破解,导致本地加密数据被盗取. 通信密钥破解,导致接口数据被盗取. 伪造接 ...
- Android开发技术周报176学习记录
Android开发技术周报176学习记录 教程 当 OkHttp 遇上 Http 2.0 http://fucknmb.com/2018/04/16/%E5%BD%93OkHttp%E9%81%87% ...
- Android开发技术周报183学习记录
Android开发技术周报183学习记录 教程 Android性能优化来龙去脉总结 记录 一.性能问题常见 内存泄漏.频繁GC.耗电问题.OOM问题. 二.导致性能问题的原因 1.人为在ui线程中做了 ...
- Qt for Android开发环境搭建及测试过程记录
最近学习了Qt的QML编程技术,感觉相较于以前的QtGUI来说更方便一些,使用QML可以将界面与业务逻辑解耦,便于开发. QML支持跨平台,包括支持Android平台,因此可以使用Qt的QML进行An ...
- 一些android开发实用性网站记录
android开发一些有用的网站有很多,可以方便我们开发,记录一下哈. 1.Android源代码在线阅读:https://www.androidos.net.cn/sourcecode 2.在线Jso ...
- Android开发-Android Studio问题以及解决记录
[Android开发] Android Studio问题以及解决记录 http://blog.csdn.net/niubitianping/article/details/51400721 1.真 ...
- Android开发 MVP模式的规范记录(个人总结)
前言 首先,这篇文章不在讲解什么是mvp模式,如果需要请自行搜索mvp模式文章了解.这个文章里我只记录mvp模式的创建和mvp各自层的界限.另外这个博客属于个人使用mvp模式后一些经验总结与记录.并不 ...
随机推荐
- MVC 学习 区域
http://www.cnblogs.com/fly_dragon/archive/2011/10/12/2209438.html
- libyuv编
下载代码(墙): git clone http://git.chromium.org/external/libyuv.git 用 make 编译(linux.mingw.cygwin): mak ...
- 【甘道夫】Hive 0.13.1 on Hadoop2.2.0 + Oracle10g部署详细解释
环境: hadoop2.2.0 hive0.13.1 Ubuntu 14.04 LTS java version "1.7.0_60" Oracle10g ***欢迎转载.请注明来 ...
- centos7关闭防火墙(转)
直接命令:service firewalld stop 1. Disable Firewalld Service. [root@rhel-centos7-tejas-barot-linux ~]# s ...
- 《图书管理系统——java》
/* (程序头部凝视開始) * 程序的版权和版本号声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名: < ...
- [勘探开发]成绩,全栈开发,健全&借贷
开发探索的一些update: 将结果做为开发的基础和终极目标 开发人员从过程的追求到最后结果的追求是一个质变的过程.相当于NBA中得分王和总冠军的差别: 一个是完毕一个局部的本职工作(有时候会和项目的 ...
- 同台电脑部署多组Tomcat负载均衡(或集群)
可能这种需求比较少见,不过如果手上服务器不够用.可以考虑先这么干着.. 具体Tomcat怎么搭集群,就不在这细说了.只写同台电脑部署多组集群需要修改和注意的地方. 一.Apache 先是Apache, ...
- quick-cocos2d-x endToLua 退出会卡住
问题: 马上赚钱,退出会出现卡住,然后清理,死界面的情况,百思不得其解,昨天在做push的时候,突然发现.在android里面弹出一个退出对话框,点击确定退出,这时候调用endtolua时,有时也会切 ...
- UVA 11769 All Souls Night 的三维凸包要求的表面面积
主题链接:option=com_onlinejudge&Itemid=8&page=show_problem&problem=2869">点击打开链接 求给定的 ...
- 未能加载文件或程序集“Common”或它的某一个依赖项。试图加载格式不正确的程序
原因:操作系统是64位的,但发布的程序引用了一些32位的ddl,所以出现了兼容性的问题解决方案一:如果是64位机器,IIS——应用程序池——高级设置——启用32位应用程序 :true.解决方案二:修改 ...