OpenCV (Open Source Computer Vision Library) ist eine Open-Source-Softwarebibliothek für Computer Vision und maschinelles Lernen. Es enthält mehr als 2500 Optimierungsalgorithmen und wird häufig in Echtzeitanwendungen eingesetzt.
Java stellt über die JavaCV-Bibliothek Bindungen zu OpenCV bereit, sodass Java-Entwickler die Funktionen von OpenCV in ihren Anwendungen nutzen können. Eine dieser Anwendungen ist die Aufnahme von Bildern von Webcams.
Um fortzufahren, benötigen Sie Folgendes: -
OpenCV ist auf Ihrem System installiert.
JavaCV, ein Wrapper für OpenCV in Java.
Um einen Schnappschuss aufzunehmen, müssen wir eine Instanz der VideoCapture-Klasse erstellen, die ein Videoaufnahmegerät darstellt. Anschließend können wir die Lesemethode verwenden, um Frames von der Videoquelle zu erfassen.
Sehen wir uns ein Beispiel an -
import org.opencv.core.Core; import org.opencv.core.Mat; import org.opencv.videoio.VideoCapture; import org.opencv.imgcodecs.Imgcodecs; public class Main { static { System.loadLibrary(Core.NATIVE_LIBRARY_NAME); } public static void main(String[] args) { // Create a VideoCapture object VideoCapture camera = new VideoCapture(0); // Check if camera opened successfully if(!camera.isOpened()){ System.out.println("Error: Camera not accessible"); return; } // Capture a new frame Mat frame = new Mat(); camera.read(frame); // Save the frame as an image Imgcodecs.imwrite("snapshot.png", frame); // Release the camera camera.release(); } }
Im obigen Code laden wir zuerst die OpenCV-Bibliothek.
Dann erstellen wir ein VideoCapture-Objekt für die Standardkamera (Index 0). Wenn Sie über mehrere Kameras verfügen und eine andere verwenden möchten, können Sie deren Index beim Erstellen des VideoCapture-Objekts angeben.
Wir verwenden die Methode isOpened, um zu überprüfen, ob die Kamera erfolgreich geöffnet wurde. Wenn auf die Kamera nicht zugegriffen werden kann, geben wir eine Fehlermeldung aus und kehren von der Hauptmethode zurück.
Als nächstes verwenden wir die Lesemethode, um ein Bild von der Kamera zu erfassen und es in einem Mat-Objekt zu speichern. Mat (kurz für Matrix) ist die Hauptbildstruktur in OpenCV, die zum Speichern von Pixeldaten verwendet wird.
Wir verwenden die imwrite-Methode in der Imgcodecs-Klasse, um den erfassten Frame als Bild zu speichern und ihn „snapshot.png“ zu nennen.
Schließlich verwenden wir die Freigabemethode, um die Kamera freizugeben und Ressourcen freizugeben.
Wenn Sie dieses Programm ausführen, erfasst es ein einzelnes Bild von Ihrer Webcam und speichert es als „snapshot.png“ in Ihrem Projektverzeichnis.
Das Aufnehmen von Bildern von einer Webcam in Java mit OpenCV ist ein einfacher Vorgang, der zahlreiche Möglichkeiten für komplexere Anwendungen wie Gesichtserkennung, Bewegungserkennung usw. eröffnet. Das Verständnis der Verwendung der OpenCV-Bibliothek in Java bietet eine solide Grundlage für die Vertiefung in Computer Vision und Bildverarbeitung.
Das obige ist der detaillierte Inhalt vonSchnappschuss von der Systemkamera mit OpenCV in Java machen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!