记录我第一次在Android开发图像处理算法的经历

简介: 记录我第一次在Android开发图像处理算法的经历

大概是四月底的时候,有人加我QQ问我是否做能做一些基于图像皮肤检测的算法,

主要是实现对皮肤六项指标:

1.      水分

2.      有份

3.      痤疮与痘痘

4.      色斑与肤色

5.      皱纹

6.      毛孔

听到这些内容,我稍微思考了一下,心里有了点思路,跟他交流了一下,关于怎么


做的思路就更加清晰起来,于是我先基于JAVA语言实现了第一版,然后把它改到


android上面,发现android代码改动很小,就可以在android上运行我的测试程序


了,但是感觉速度很慢,大概要十几秒才能出结果,发给了那个哥们,他测试了一


下也很郁闷,说速度太慢了,准确率也不是很高,怎么办,于是我仔细对照了一下


,发现我用Java语言实现时,在桌面版都是基于int来处理RGB像素的每个通道数


据,android上面DVM这么玩就有点卡,于是我就全部改成了每个通道基于BYTE


来实现处理,然后增加了皮肤检测,这样过滤非SKIN像素,再降采样处理整个


Bitmap数据,果然速度很快了,只要三秒左右就可以出结果,连我自己都觉得


自己是大神了,然后就想把android的人脸检测加上去,实现分块检测,这样


可以更好的检测人脸皱纹类型,经过一番各种坑之后,android上的人脸检测


API我学会了使用,但是发现速度不给力,加上去等于作茧自缚。于是我又放


弃了。又经过一番各种调试,别人帮忙把相机功能加上了,这样就实现了拍


照直接检测出结果,于是第二个问题出现了,经常出现APP闪退,我哭,经


过一番测试,发现低分辨率时候才会出现闪退,后来我才明白问题出在我对


低分辨率进行降采样,已经超出了像素范围,我哭!解决了之后闪退问题就


不见了,终于可以正常运行了,也可以正常测试了:

测试程序中的效果截屏:

这个就是拍照检测的结果,

原理都是常见的图像处理算法,可以说本人的博客文章已经包含了该应用的所有


图像处理算法知识,只是如何活学活用取决于大家都图像处理问题的认知与理解。


通过该算法的开发,我第一次将我学到的图像处理知识应用到实践之中用于解决


实际问题,同时也发现真实图像处理问题,不是一步算法就可以实现的,而是一


系列图像处理算法的综合运用。

相关文章
|
1月前
|
开发工具 Android开发
X Android SDK file not found: adb.安卓开发常见问题-Android SDK 缺少 `adb`(Android Debug Bridge)-优雅草卓伊凡
X Android SDK file not found: adb.安卓开发常见问题-Android SDK 缺少 `adb`(Android Debug Bridge)-优雅草卓伊凡
305 11
X Android SDK file not found: adb.安卓开发常见问题-Android SDK 缺少 `adb`(Android Debug Bridge)-优雅草卓伊凡
|
20天前
|
canal 算法 vr&ar
【图像处理】基于电磁学优化算法的多阈值分割算法研究(Matlab代码实现)
【图像处理】基于电磁学优化算法的多阈值分割算法研究(Matlab代码实现)
|
1月前
|
Java 开发工具 Maven
【01】完整的安卓二次商业实战-详细的初级步骤同步项目和gradle配置以及开发思路-优雅草伊凡
【01】完整的安卓二次商业实战-详细的初级步骤同步项目和gradle配置以及开发思路-优雅草伊凡
129 6
|
3月前
|
安全 数据库 Android开发
在Android开发中实现两个Intent跳转及数据交换的方法
总结上述内容,在Android开发中,Intent不仅是活动跳转的桥梁,也是两个活动之间进行数据交换的媒介。运用Intent传递数据时需注意数据类型、传输大小限制以及安全性问题的处理,以确保应用的健壯性和安全性。
251 11
|
3月前
|
移动开发 Java 编译器
Kotlin与Jetpack Compose:Android开发生态的演进与架构思考
本文从资深Android工程师视角深入分析Kotlin与Jetpack Compose在Android系统中的技术定位。Kotlin通过空安全、协程等特性解决了Java在移动开发中的痛点,成为Android官方首选语言。Jetpack Compose则引入声明式UI范式,通过重组机制实现高效UI更新。两者结合不仅提升开发效率,更为跨平台战略和现代架构模式提供技术基础,代表了Android开发生态的根本性演进。
128 0
|
7月前
|
JavaScript Linux 网络安全
Termux安卓终端美化与开发实战:从下载到插件优化,小白也能玩转Linux
Termux是一款安卓平台上的开源终端模拟器,支持apt包管理、SSH连接及Python/Node.js/C++开发环境搭建,被誉为“手机上的Linux系统”。其特点包括零ROOT权限、跨平台开发和强大扩展性。本文详细介绍其安装准备、基础与高级环境配置、必备插件推荐、常见问题解决方法以及延伸学习资源,帮助用户充分利用Termux进行开发与学习。适用于Android 7+设备,原创内容转载请注明来源。
1559 77
|
4月前
|
安全 Java Android开发
为什么大厂要求安卓开发者掌握Kotlin和Jetpack?深度解析现代Android开发生态优雅草卓伊凡
为什么大厂要求安卓开发者掌握Kotlin和Jetpack?深度解析现代Android开发生态优雅草卓伊凡
215 0
为什么大厂要求安卓开发者掌握Kotlin和Jetpack?深度解析现代Android开发生态优雅草卓伊凡
|
8月前
|
人工智能 编解码 算法
使用 PAI-DSW x Free Prompt Editing图像编辑算法,开发个人AIGC绘图小助理
使用 PAI-DSW x Free Prompt Editing图像编辑算法,开发个人AIGC绘图小助理
155 0
|
存储 Java 开发工具
Android开发的技术与开发流程
Android开发的技术与开发流程
588 1
|
安全 Android开发 Swift
安卓与iOS开发:平台差异与技术选择
【8月更文挑战第26天】 在移动应用开发的广阔天地中,安卓和iOS两大平台各占一方。本文旨在探索这两个系统在开发过程中的不同之处,并分析开发者如何根据项目需求选择合适的技术栈。通过深入浅出的对比,我们将揭示各自平台的优势与挑战,帮助开发者做出更明智的决策。
226 5

热门文章

最新文章