“一个中心,两个基本点”,只是用来打个比方,很有吸引力而已,让大家见笑了,现在来说这个比方:
作为Java工程师反复写的程序,好像都影影约约实现的功能都可以在“增删查改”中找到映射,不知道大家有没有这样一种感觉,在刚做工程师时候,有一个功能思来想去怎么实现它时,到头来它就是一个增删查改。但是再想想这好像也就是网络开发,如果再做一些操作系统的系统性开发就不是了,所以我这里提到了一个我所说的“一个中心”-------JavaCV
本来想写一些JavaCV系列的文章,但是发现网上的总结有些挺好,所以就写了一篇自己的见解,希望对大家的看法有帮助。
那什么是JavaCV呢?我们来看看它的介绍:
JavaCV 是一款开源的视觉处理库,基于Apache License Version 2.0协议和GPLv2两种协议 [1] ,对各种常用计算机视觉库封装后的一组jar包,封装了OpenCV、libdc1394、OpenKinect、videoInput和ARToolKitPlus等计算机视觉编程人员常用库的接口。
JavaCV通过其中的utility类方便的在包括Android在内的Java平台上调用这些接口。
特点
另外JavaCV还带有硬件加速的全屏幕图像显示(CanvasFrame),易于在多个内核中执行并行代码(并行),用户友好的几何和色彩的相机和投影仪校准(GeometricCalibrator,ProCamGeometricCalibrator,ProCamColorCalibrator ),检测和特征点(ObjectFinder),一类是实现投影,摄像系统(直接图像对齐设置匹配主要GNImageAligner,ProjectiveTransformer,ProjectiveGainBiasTransformer,ProCamTransformer和ReflectanceInitializer),以及在JavaCV类杂项功能。
看完了JavaCV的介绍,我们知道它整合了两个Java多媒体很好的框架
- 音视频库 FFmpeg
- 图像视觉库 OpenCV
这两个库作为Java程序员不妨去研究一下。如果你想成为一名高级Java工程师,和Java应用全栈工程师或者是Java技术技能的总结都有好处。
现在来说说“两个基本点”,“两个基本点”就是FFmpeg和OpenCV分别有两个重要的知识点。
我们来考虑一下FFmpeg的知识点:(有两个点比较常用也核心的)
- 转解码
- 流媒体
原因:比如是一个视频通话的服务,核心部分就是音视频的转解码和媒体流的传输。
我们来考虑一下OpenCV的知识点:(有两个比较常用也核心的)
- 特征提取(再深入一些就是提取算法)
- 特征匹配(再深入一些就是匹配算法)
原因:比如是一个人脸识别服务,核心部分就是面部特征值的提取和匹配。
上面包含的”两个基本点“都是性能调优过程中,主要考虑的,