本章作为javacv技术栈系列文章汇总
写了不少关于javacv的文章,不敢说精通 ,只能说对javacv很熟悉。虽然偶尔也提交pull request做做贡献,但是javacv包含的库实在太多了。有些库也不太可能每个应用场景都会用到,所以平时主要还是以ffmpeg音视频处理为主,顺带着写一点opencv图像处理,图像检测识别和tessert文字识别等等。
一个老生常谈的问题,相信大家各种搜索引擎搜一下应该知道它能做了什么了。
首先是音视频处理,编解码,装封装,只要ffmpeg可以的javacv就可以,他们没有什么不同。
再者是图像处理和图像识别,可以借助opencv图像检测识别和tessert字符识别,他们也没有什么不同,只是javacv通过jni让它们跨平台了而已,不需要自己再去封装了。
剩下的包含矩阵计算,深度学习等方面的内容,了解不多,不多赘述。
很多人好奇,现在javacv常被用在哪些应用场景下?
javacv跨平台,不仅可以在windows,linux,macos等服务器或者客户都安机器上工作,在各种嵌入式板子上也不在话下。
嵌入式领域:
很多人把javacv用在树莓派等等的一些基于arm芯片的板子上,外挂摄像头或者音频设备就可以实现音视频上传,图像处理,图像识别等等操作。
流媒体:
利用javacv的流媒体优势,可以轻松实现音视频采集,推流,编解码,装封装等等操作。
深度学习:
deeplearn4j为主的利用java大数据能力进行深度学习,这方面了解不多,但是它确实挺出名的。
人脸检测识别:
网上搜到javacv最多的文章就是关于人脸检测识别的了,javacv官网的首页demo就是人脸检测的例子,opencv能做到的它都可以。
文字识别:
利用Tesseract-OCR可以轻松实现字符库训练,字符识别。还可以借助javacv特有的流媒体属性和嵌入式开发特性实现摄像头的字符识别,视频图像的字符识别等场景。
依赖配置问题可以参考博主另一篇文章:JavaCV更新到1.5.x版本后的依赖问题说明以及如何精简依赖包大小
opencv人脸检测识别:
持续更新