【Java】调用摄像头进行拍照并保存【详细】以及处理no jniopencv_core in java.library.path的一种方法

【之前困扰笔者的问题描述】   date:2019.12.18

网上教程很多,但是没有看见完整的,所以写一个出来。

调用摄像头需要javaCV的jar包openCV的jar包,现在已经不需要安装包了,jar包可以下载也可以直接导入pom依赖。一开始我看了网上教程写了代码【代码后附】,然后运行报错,而且找了半天原因都找不到,最后我发现还要openCV的jar包(当时看来看去以为只要javaCVjar包就行。。。)

具体报错这样:

Exception in thread "main" java.lang.UnsatisfiedLinkError: no jniopencv_core in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1860)
at java.lang.Runtime.loadLibrary0(Runtime.java:870)
at java.lang.System.loadLibrary(System.java:1122)
at org.bytedeco.javacpp.Loader.loadLibrary(Loader.java:976)
at org.bytedeco.javacpp.Loader.load(Loader.java:777)
at org.bytedeco.javacpp.Loader.load(Loader.java:684)
at org.bytedeco.javacpp.opencv_core.(opencv_core.java:10)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:348)
at org.bytedeco.javacpp.Loader.load(Loader.java:739)
at org.bytedeco.javacpp.Loader.load(Loader.java:684)
at org.bytedeco.javacpp.helper.opencv_core$AbstractArray.(opencv_core.java:109)
at org.bytedeco.javacv.OpenCVFrameGrabber.(OpenCVFrameGrabber.java:82)
at com.kpzx.pzsz.CameraUtil.Camera(CameraUtil.java:26)
at com.kpzx.pzsz.CameraUtil.main(CameraUtil.java:22)
Caused by: java.lang.UnsatisfiedLinkError: no opencv_imgproc320 in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1860)
at java.lang.Runtime.loadLibrary0(Runtime.java:870)
at java.lang.System.loadLibrary(System.java:1122)
at org.bytedeco.javacpp.Loader.loadLibrary(Loader.java:976)
at org.bytedeco.javacpp.Loader.load(Loader.java:765)
... 10 more

图示:

【Java】调用摄像头进行拍照并保存【详细】以及处理no jniopencv_core in java.library.path的一种方法_第1张图片

 

 

 网上各种答案都有,很难找,最后才发现少了openCV依赖。

 

1.引入pom依赖


org.bytedeco
javacv
1.3.3

org.bytedeco.javacpp-presets
opencv
3.1.0-1.2

注意:javaCV版本要匹配OpenCV版本,不知道匹配什么版本的查一下。我用的javacv1.3.3网上好评较多,不过版本好像比较旧了,大家有需要的可以试试别的。

2.核心代码

此处引用一位大佬的。http://www.zuidaima.com/blog/3846434797243392.htm  代码没问题,亲测,复制进去有问题的八成自己引用包引用错了,或者编译器自动导包错乱

3.运行实测:

【Java】调用摄像头进行拍照并保存【详细】以及处理no jniopencv_core in java.library.path的一种方法_第2张图片

 

 

 保存到本地

【Java】调用摄像头进行拍照并保存【详细】以及处理no jniopencv_core in java.library.path的一种方法_第3张图片

 

 

 

项目结构

 

 

 

 

最后:如有瑕疵不足,或有更好建议的欢迎大佬留言。

你可能感兴趣的:(【Java】调用摄像头进行拍照并保存【详细】以及处理no jniopencv_core in java.library.path的一种方法)