我目前正在开始一个项目,我想从我的网络摄像头捕获和操作数据流,以便开始我想从我的网络摄像头拍摄一些照片并将其显示给用户。然而,这给了一个错误。
public class quicktest implements Runnable {
public static void main(String[] args){
Thread t=new Thread(new quicktest());
t.start();
}
IplImage image;
CanvasFrame canvas = new CanvasFrame("Web Cam");
public quicktest() {
canvas.setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);
}
@Override
public void run() {
FrameGrabber grabber = new VideoInputFrameGrabber(0);
int i=0;
try {
grabber.start();
IplImage img;
while (true) {
img = grabber.grab();
if (img != null) {
cvFlip(img, img, 1);// l-r = 90_degrees_steps_anti_clockwise
// show image on window
canvas.showImage(img);
}
Thread.sleep(1000);
}
} catch (Exception e) {
}
}
这给出了以下例外:
Exception in thread "Thread-3" java.lang.UnsatisfiedLinkError: no jnivideoInputLib in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1764)
at java.lang.Runtime.loadLibrary0(Runtime.java:823)
at java.lang.System.loadLibrary(System.java:1044)
at com.googlecode.javacpp.Loader.loadLibrary(Loader.java:711)
at com.googlecode.javacpp.Loader.load(Loader.java:586)
at com.googlecode.javacpp.Loader.load(Loader.java:540)
at com.googlecode.javacv.cpp.videoInputLib.<clinit>(videoInputLib.java:81)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:249)
at com.googlecode.javacpp.Loader.load(Loader.java:561)
at com.googlecode.javacpp.Loader.load(Loader.java:540)
at com.googlecode.javacv.cpp.videoInputLib$videoInput.<clinit>(videoInputLib.java:193)
at com.googlecode.javacv.VideoInputFrameGrabber.start(VideoInputFrameGrabber.java:101)
at com.googlecode.javacv.VideoInputFrameGrabber.start(VideoInputFrameGrabber.java:98)
at quicktest.run(quicktest.java:27)
at java.lang.Thread.run(Thread.java:695)
我已经搜索并尝试了建议的here,但这给了我另一个错误:
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:249)
at com.googlecode.javacpp.Loader.load(Loader.java:561)
at com.googlecode.javacpp.Loader.load(Loader.java:540)
at com.googlecode.javacv.cpp.videoInputLib$videoInput.<clinit>(videoInputLib.java:193)
at Main.main(Main.java:5)
有谁知道如何解决这个问题?顺便说一下,这发生在macbook pro 10.7.5上并试图在网络摄像头中使用构建。虽然它绝对不重要,但也有附加的ocules裂口。
使用OpenCVFrameGrabber
我给了java.lang.UnsatisfiedLinkError: no jniopencv_highgui in java.library.path
例外。
顺便说一句,如果有人知道另一种简单的方法将我的网络摄像头中的图像转换成java会有所帮助。
做了什么benny.la说我没有得到
线程“Thread-3”中的异常java.lang.UnsatisfiedLinkError:java.library.path中没有jnivideoInputLib
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1764)
at java.lang.Runtime.loadLibrary0(Runtime.java:823)
at java.lang.System.loadLibrary(System.java:1044)
at com.googlecode.javacpp.Loader.loadLibrary(Loader.java:711)
at com.googlecode.javacpp.Loader.load(Loader.java:586)
at com.googlecode.javacpp.Loader.load(Loader.java:540)
at com.googlecode.javacv.cpp.videoInputLib.<clinit>(videoInputLib.java:81)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:249)
at com.googlecode.javacpp.Loader.load(Loader.java:561)
at com.googlecode.javacpp.Loader.load(Loader.java:540)
at com.googlecode.javacv.cpp.videoInputLib$videoInput.<clinit>(videoInputLib.java:193)
at com.googlecode.javacv.VideoInputFrameGrabber.start(VideoInputFrameGrabber.java:101)
at com.googlecode.javacv.VideoInputFrameGrabber.start(VideoInputFrameGrabber.java:98)
at quicktest.run(quicktest.java:29)
at java.lang.Thread.run(Thread.java:695)
异常。
答案 0 :(得分:1)
似乎您的JavaCV设置不正确。
您是否完成了以下操作?
答案 1 :(得分:1)
顺便说一句,如果有人知道另一个简单的方法来获取我的图像 摄像头进入java会对你有所帮助。
由于你使用的是macbook,你可以这样做:
Runtime.getRuntime().exec("screencapture tempfile.jpg");
InputStream in = new FileInputStream("tempfile.jpg");
答案 2 :(得分:1)
我也面临同样的问题。 我使用带有Java CV 0.10的OpenCV-2.4.10的mac OSX
当我尝试运行ColoredObjectTrack.java时出现此问题(存在于javaCV-Samples中) 我使用OpenCVFrameGrabber而不是VideoInputFrameGrabber。它奏效了。