OpenCV (Perpustakaan Penglihatan Komputer Sumber Terbuka) ialah perpustakaan perisian komputer dan perisian pembelajaran mesin sumber terbuka. Ia mengandungi lebih daripada 2500 algoritma pengoptimuman dan digunakan secara meluas dalam aplikasi masa nyata.
Java menyediakan pengikatan kepada OpenCV melalui perpustakaan JavaCV, membolehkan pembangun Java memanfaatkan keupayaan OpenCV dalam aplikasi mereka. Satu aplikasi sedemikian ialah menangkap imej dari kamera web.
Untuk meneruskan, anda memerlukan perkara berikut -
OpenCV dipasang pada sistem anda.
JavaCV, pembungkus untuk OpenCV di Jawa.
Untuk menangkap syot kilat, kita perlu mencipta contoh kelas VideoCapture, yang mewakili peranti tangkapan video. Kami kemudiannya boleh menggunakan kaedah baca untuk menangkap bingkai daripada sumber video.
Mari kita lihat contoh -
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(); } }
Dalam kod di atas, kami mula-mula memuatkan perpustakaan OpenCV.
Kemudian kami mencipta objek VideoCapture untuk kamera lalai (indeks 0). Jika anda mempunyai berbilang kamera dan ingin menggunakan yang berbeza, anda boleh menentukan indeksnya apabila anda mencipta objek VideoCapture.
Kami menggunakan kaedah isOpened untuk menyemak sama ada kamera berjaya dibuka. Jika kamera tidak boleh diakses, kami mencetak mesej ralat dan kembali dari kaedah utama.
Seterusnya, kami menggunakan kaedah baca untuk menangkap bingkai daripada kamera dan menyimpannya dalam objek Mat. Mat (singkatan untuk Matrix) ialah struktur imej utama dalam OpenCV yang digunakan untuk menyimpan data piksel.
Kami menggunakan kaedah imwrite dalam kelas Imgcodecs untuk menyimpan bingkai yang ditangkap sebagai imej dan menamakannya "snapshot.png".
Akhir sekali, kami menggunakan kaedah pelepasan untuk melepaskan kamera untuk mengeluarkan sumber.
Apabila anda menjalankan program ini, ia akan menangkap satu bingkai daripada kamera web anda dan menyimpannya sebagai "snapshot.png" dalam direktori projek anda.
Merakam imej daripada kamera web di Java menggunakan OpenCV ialah proses mudah yang membuka banyak peluang untuk aplikasi yang lebih kompleks seperti pengecaman muka, pengesanan gerakan, dsb. Memahami cara menggunakan pustaka OpenCV di Java menyediakan asas yang kukuh untuk menyelidiki lebih mendalam ke dalam penglihatan komputer dan pemprosesan imej.
Atas ialah kandungan terperinci Mengambil gambar dari kamera sistem menggunakan OpenCV dalam Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!