Usb kameradan, ip kameradan, video dosyasından veya bir video kaynağından kayıt almak için videoio paketi içerisindeki VideoCapture sınıfı kullanılmaktadır. Bir örnek ile nasıl kullanıldığına göz atalım.
import org.opencv.core.Core; import org.opencv.core.Mat; import org.opencv.videoio.VideoCapture; public class Kamera { public static void main(String[] args) { // sistem kütüphanesini yükleme System.loadLibrary(Core.NATIVE_LIBRARY_NAME); // görüntüyü barındıracak nesne Mat imageArray = new Mat(); // video aygıtlarına erişim sağlar VideoCapture videoDevice = new VideoCapture(); // varsayılan video aygıtını başlatır videoDevice.open(0); // video aygıtı bağlantısı yapıldı mı? if (videoDevice.isOpened()) { // video aygıtından bir kare oku ve mat nesnesine yerleştir videoDevice.read(imageArray); // alınan dijital görüntü bilgileri System.out.println(imageArray.toString()); // video aygıtını setbest bırak videoDevice.release(); } else { System.out.println("Video aygıtına bağlanılamadı."); } } }
VideoCapture sınıfından oluşturulan nesne, video aygıtını başlatmaktadır. Bu nesnenin open() metodu string ve int olarak parametre almaktadır. string olarak verilen parametre video dosyasının yolunu, örneğin C:\video.avi gibi veya yayın yapan bir ip kameranın adresini () alabilir.
int tipinde verilen parametreler ise örnekte de olduğu gibi sisteme takılı olan kameraların numaralarıdır. Parametre olarak 0 verildiğinde sistemdeki varsayılan video aygıtına bağlanır. Sistemdeki başka bir kameraya erişim sağlanılmak isteniyorsa int olarak 1, 2, 3 gibi numarası verilerek bağlanılabilinir. isOpen() metodu ile de bağlantı durumu kontrol edilebilir. VideoCapture sınıfından oluşturulan nesnenin read() metodu ile de aygıttan bir kayıt alınır ve mat nesnesi içerisinde barındırılır. Kamera bağlantısını kapatmak için ise release() metodu kullanılır, bu metot kullanılmaz ve video aygıtı bağlantısı kesilmez ile sürekli olarak bir görüntü akışı gerçekleştirilebilir. imageArray olarak adlandırılan mat nesnesinin toString() metodu ile satır, sütun veya adresi gibi temel bilgilerine erişilebilir. Video aygıtından alınan görüntü imageArray içerisine aktarılır ve bu nesneye ilişkin bilgiler ekranda gösterilir.