Rumah  >  Artikel  >  Java  >  Mengambil gambar dari kamera sistem menggunakan OpenCV dalam Java

Mengambil gambar dari kamera sistem menggunakan OpenCV dalam Java

王林
王林ke hadapan
2023-08-28 11:09:10741semak imbas

Mengambil gambar dari kamera sistem menggunakan OpenCV dalam Java

Pengenalan

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.

Prasyarat

Untuk meneruskan, anda memerlukan perkara berikut -

  • OpenCV dipasang pada sistem anda.

  • JavaCV, pembungkus untuk OpenCV di Jawa.

Tangkap syot kilat menggunakan OpenCV

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.

Contoh

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();
   }
}

Arahan

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.

Kesimpulan

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!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam