java 实时获取摄像头图片流_OpenCV 2.4.4 Java – 抓取网络摄像头图片/流(OSX)

这篇博客介绍了作者在尝试使用OpenCV 2.4.4 Java绑定在OSX Mountain Lion上从网络摄像头实时获取图片流时遇到的问题。作者成功加载了OpenCV库,但当尝试使用VideoCapture类获取帧时,遇到了内存访问错误。代码显示,尽管相机成功打开,但在读取帧时出现了问题,导致捕获的帧宽度为0,并引发了无效内存访问异常。
摘要由CSDN通过智能技术生成

我是Stackoverflow和OpenCV编程领域的新手.

我用OpenCV Bindings for

Java(opencv.org官员,而不是JavaCV)制作了一些项目,比如通过ORB和SURF功能进行对象识别,处理图像.一切还好.

现在我正在转向视频流中的对象识别.我想从网络摄像头抓取流并应用对象识别.

我不是Java大师,所以我在OpenCV中找到了VideoCapture类,但是我无法从相机中获取图片.

我在OSX Mountain Lion中使用OpenCV 2.4.4绑定在Eclipse中运行我的项目.

控制台中的结果:

Hello, OpenCV

Camera OK?

Frame Obtained

Captured Frame Width 0

Invalid memory access of location 0x7fae00000000 rip=0x7fff8b4c5263

代码:

import org.opencv.core.Mat;

import org.opencv.highgui.Highgui;

import org.opencv.highgui.VideoCapture;

public class Webcam {

public static void main (String args[]){

System.out.println("Hello, OpenCV");

// Load the native library.

System.loadLibrary("opencv_java244");

VideoCapture camera = new VideoCapture(0);

camera.open(0); //Useless

if(!camera.isOpened()){

System.out.println("Camera Error");

}

else{

System.out.println("Camera OK?");

}

Mat frame = new Mat();

//camera.grab();

//System.out.println("Frame Grabbed");

//camera.retrieve(frame);

//System.out.println("Frame Decoded");

camera.read(frame);

System.out.println("Frame Obtained");

/* No difference

camera.release();

*/

System.out.println("Captured Frame Width " + frame.width());

Highgui.imwrite("camera.jpg", frame);

System.out.println("OK");

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值