昨天使用javacv写了个实时人脸检测的简单程序,网上找了很多代码,但是觉得都太冗余了,大多是人脸检测和对比之类的代码一起写的,加上javacv版本不同,有些函数和数据结构不同,看的我一脸混乱,我只是想要一个单独的人脸检测有人脸检测功能的代码而已,所以这里简单剥离了一下,只留下了最核心的人脸检测部分的代码(不是识别或者匹配)。
我这里使用的是javacv1.2+myeclipse blue 2014,(javacv0.8之前的版本貌似要使用opencv+javacv才行,0.8以后貌似不用引入opencv了)。
ps:之前我在同一个项目中同时导入了javacv1.2的包和opencv3.2/build/java/opencv_320.jar包。发现javacv的包和opencv的包里面的类发生了冲突,两个包中都有Mat,但是像个包中的类(Mat)互不相通,一时间搞得代码相当混乱,这里建议opencv和javacv还是分开用,不要再同一个项目中同时导入。
首先是javacv包的下载,这个直接在百度下载就行了,下载之后解压,将javacv-1.2-bin目录下的opencv.jar,javacv.jar,javacpp.jar,opencv_windows_x86_64.jar(如果是32位程序,这个包换成opencv_windows_x86.jar导入),这四个包直接导入eclispse就行,简单快捷。之后我们就可以开始使用javacv了。
首先我们获取电脑摄像头,这里javacv封装好了,我们几句就可以调用: