我是 OpenCV - Java 的初学者,尝试通过从笔记本电脑中的相机捕获图像来学习基础知识。我在eclipse中运行以下代码,可以看到相机灯闪烁一秒钟,表明它确实启动了。但存储的图像是全黑的。
import org.opencv.core.*;
import org.opencv.videoio.VideoCapture;
import org.opencv.imgcodecs.*;
public class VideoCap {
public static void main(String[] args){
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
VideoCapture camera = new VideoCapture(0);
if(!camera.isOpened()) {
System.out.println("Erro in opening camera");
}
else {
Mat frame = new Mat();
while(true) {
if(camera.read(frame)) {
System.out.println("Camera obtained");
System.out.println("Captured frame width" + frame.width()
+ " catured frame height " + frame.height() );
Imgcodecs.imwrite("cam.jpg", frame);
break;
}
}
}
camera.release();
}
}
控制台上没有错误,可能出了什么问题?
最佳答案
您必须像这样更改代码:
import org.opencv.core.*;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.videoio.VideoCapture;
public class VideoCap {
public static void main (String args[]){
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
VideoCapture camera = new VideoCapture(0);
System.out.println("Welcome to OpenCV " + Core.VERSION);
if(!camera.isOpened()){
System.out.println("Error");
}
else {
Mat frame = new Mat();
camera.read(frame);
while(true){
if (camera.read(frame)){
System.out.println("Frame Obtained");
System.out.println("Captured Frame Width " +
frame.width() + " Height " + frame.height());
Imgcodecs.imwrite("c://capture/camera.jpg", frame);
System.out.println("OK");
break;
}
}
}
camera.release();
}
}
关于java - OpenCV 中相机捕获的图像为全黑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36995461/