import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.core.Size;
import org.opencv.highgui.Highgui;
import org.opencv.highgui.VideoCapture;
import org.opencv.imgproc.Imgproc;
public class Video
{
public static void main(String[] args)
{
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
VideoCapture cap = new VideoCapture(0);
cap.open(1);
if(!cap.isOpened())
{
System.out.println("No camera");
}
else
{
System.out.println("Yes. Camera");
}
Mat frame = new Mat();
cap.retrieve(frame);
Highgui.imwrite("me1.jpg", frame);
Mat frameBlur = new Mat();
Imgproc.blur(frame, frameBlur, new Size(5,5));
Highgui.imwrite("me2-blurred.jpg", frameBlur);
Imgproc.GaussianBlur(frame, frameBlur, new Size(25, 25), 20);
Highgui.imwrite("me3-blurred.jpg", frameBlur);
cap.release();
}
}
我已使用此代码打开我的相机设备并捕获 3 个不同的帧并对其进行了一些操作。但是,我无法使用 VideoCapture 的 {n_open} 方法打开像 .avi/.mpg/.mp4 等文件。这里的 VideoCapture 实现中有一个方法。但是因为它是一个私有的本地方法,所以不能使用 VideoCapture 的对象访问该方法。
有人可以帮助如何使用纯 OpenCV 2.4.6 和 Java 做到这一点
(请不要建议使用处理库的解决方案)