javacv教程文档手册开发指南汇总篇

本章作为javacv技术栈系列文章汇总

前言

写了不少关于javacv的文章,不敢说精通 ,只能说对javacv很熟悉。虽然偶尔也提交pull request做做贡献,但是javacv包含的库实在太多了。有些库也不太可能每个应用场景都会用到,所以平时主要还是以ffmpeg音视频处理为主,顺带着写一点opencv图像处理,图像检测识别和tessert文字识别等等。

javacv是什么?javacv技术栈能做什么?

一个老生常谈的问题,相信大家各种搜索引擎搜一下应该知道它能做了什么了。
首先是音视频处理,编解码,装封装,只要ffmpeg可以的javacv就可以,他们没有什么不同。
再者是图像处理和图像识别,可以借助opencv图像检测识别和tessert字符识别,他们也没有什么不同,只是javacv通过jni让它们跨平台了而已,不需要自己再去封装了。
剩下的包含矩阵计算,深度学习等方面的内容,了解不多,不多赘述。

javacv技术栈的应用场景

很多人好奇,现在javacv常被用在哪些应用场景下?
javacv跨平台,不仅可以在windows,linux,macos等服务器或者客户都安机器上工作,在各种嵌入式板子上也不在话下。

嵌入式领域:
很多人把javacv用在树莓派等等的一些基于arm芯片的板子上,外挂摄像头或者音频设备就可以实现音视频上传,图像处理,图像识别等等操作。

流媒体:
利用javacv的流媒体优势,可以轻松实现音视频采集,推流,编解码,装封装等等操作。

深度学习:
deeplearn4j为主的利用java大数据能力进行深度学习,这方面了解不多,但是它确实挺出名的。

人脸检测识别:
网上搜到javacv最多的文章就是关于人脸检测识别的了,javacv官网的首页demo就是人脸检测的例子,opencv能做到的它都可以。

文字识别:
利用Tesseract-OCR可以轻松实现字符库训练,字符识别。还可以借助javacv特有的流媒体属性和嵌入式开发特性实现摄像头的字符识别,视频图像的字符识别等场景。

JavaCV入门指南系列

  • JavaCV入门指南:序章

  • JavaCV入门指南:调用FFmpeg原生API和JavaCV是如何封装了FFmpeg的音视频操作

  • JavaCV入门指南:调用opencv原生API和JavaCV是如何封装了opencv的图像处理操作

  • JavaCV入门指南:帧抓取器(FrameGrabber)的原理与应用

  • JavaCV入门指南:帧录制器/推流器(FrameRecorder)的原理与应用

  • JavaCV入门指南:帧过滤器(FrameFilter)的原理与应用

  • JavaCV入门指南:FrameConverter转换工具类及CanvasFrame图像预览工具类(完结篇)

javaCV实战系列

  • javacv开发详解之1:调用本机摄像头视频

  • javaCV开发详解之2:推流器实现,推本地摄像头视频到流媒体服务器以及摄像头录制视频功能实现(基于javaCV-FFMPEG、javaCV-openCV)

  • javaCV开发详解之3:收流器实现,录制流媒体服务器的rtsp/rtmp视频文件(基于javaCV-FFMPEG)

  • javaCV开发详解之4:转流器实现(也可作为本地收流器、推流器,新增添加图片及文字水印,视频图像帧保存),实现rtsp/rtmp/本地文件转发到rtmp流媒体服务器(基于javaCV-FFMPEG)

  • javaCV开发详解之5:录制音频(录制麦克风)到本地文件/流媒体服务器(基于javax.sound、javaCV-FFMPEG)

  • javaCV开发详解之6:本地音频(话筒设备)和视频(摄像头)抓取、混合并推送(录制)到服务器(本地)

  • javaCV开发详解之7:让音频转换更加简单,实现通用音频编码格式转换、重采样等音频参数的转换功能(以pcm16le编码的wav转mp3为例)

  • javaCV开发详解之8:转封装在rtsp转rtmp流中的应用(无须转码,更低的资源消耗,更好的性能,更低延迟)

  • javaCV开发详解之9:基于gdigrab的windows屏幕画面抓取/采集(基于javacv的屏幕截屏、录屏功能)

  • javaCV开发详解之10:基于dshow调用windows摄像头视频和音频,想要获取屏幕画面首选gdigrab

  • javaCV开发详解之11:视频文件转gif动态图片实现,也支持摄像机、桌面屏幕、流媒体等视频源转gif

  • javaCV开发详解之12:视频转apng动态图片实现,支持透明通道,支持摄像机、桌面屏幕、流媒体等视频源转apng动态图

  • javaCV开发详解之13:使用FFmpeg Filter过滤器处理音视频

  • javaCV开发详解之14:音频重采样

  • javaCV开发详解之15:视频帧像素格式转换

  • javaCV开发详解之16:使用一张图片推流和一张图片录制成视频文件

  • javaCV开发详解之17:GIF和APNG动态图片推流和录制成视频文件(以gif转mp4为例)

  • javaCV开发详解之18:音视频转码(音频编解码和视频编解码)

  • JavaCV开发详解之19:如何开启GPU硬件加速,使用JavaCV进行音视频的硬解码和硬编码

  • JavaCV开发详解之20:如何使用JavaCV制作ico图标,图片和视频生成ico图标,视频流录制ico图标

JavaCV及音视频相关补充篇

  • javaCV开发详解补充篇:基于avfoundation的苹果Mac和ios获取屏幕画面及录屏/截屏以及摄像头画面和音频采样获取实现

  • javaCV开发详解之GIF动态图片录制补充篇:windows桌面屏幕画面录制成gif动态图片,支持桌面任意取域生成gif,可扩展支持MacOS/安卓/linux等平台,可扩展支持apng动态图片

  • 音视频编解码问题:javaCV如何快速进行音频预处理和解复用编解码(基于javaCV-FFMPEG)

  • 音视频编解码问题:16/24/32位位音频byte[]转换为小端序short[],int[],以byte[]转short[]为例

  • 实现给图片增加图片水印或者文字水印(也支持视频图像帧添加水印)

  • java原生实现屏幕设备遍历和屏幕采集(捕获)等功能

  • 流媒体直播实时视频延迟时间排查和剖析

javacv进阶tesserac文字识别系列

  • javaCV文字识别之1:基于google的tesserac ocr识别图片中的文字,跨平台支持英文中文简体繁体等各种字符识别

  • javaCV文字识别之2:视频文字识别和视频提取字幕文字字符

javacv进阶ffmpeg系列

  • javacpp-FFmpeg系列之1:视频拉流解码成YUVJ420P,并保存为jpg图片

  • javacpp-FFmpeg系列之2:通用拉流解码器,支持视频拉流解码并转换为YUV、BGR24或RGB24等图像像素数据

  • javacpp-FFmpeg系列之3: 图像数据转换(BGR与BufferdImage互转,RGB与BufferdImage互转)

  • javacpp-FFmpeg系列补充:FFmpeg解决avformat_find_stream_info检索时间过长问题

javacv进阶opencv系列

  • javaCV图像处理之1:实时视频添加文字水印并截取视频图像保存成图片,实现文字水印的字体、位置、大小、粗度、翻转、平滑等操作

  • javaCV图像处理之2:实时视频添加图片水印,实现不同大小图片叠加,图像透明度控制

  • javacv图像处理3:使用opencv原生方法遍历摄像头设备及调用(方便多摄像头遍历及调用,相比javacv更快的摄像头读取速度和效率,方便读取后的图像处理)

  • javacv图像处理系列:国内车辆牌照检测识别系统(万份测试准确率99.7%以上)

javacv人脸检测识别

  • JavaCV进阶opencv图像处理:摄像头图像人脸检测

  • JavaCV进阶opencv图像处理:ffmpeg视频图像画面人脸检测

持续更新

你可能感兴趣的:(javacv教程汇总,javacv技术栈,javacv手册,javacv指南,javacv应用场景)