logic.imageloader.USBCamera.java Source code

Java tutorial

Introduction

Here is the source code for logic.imageloader.USBCamera.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package logic.imageloader;

import logic.helpclass.KeyBoardListener;
import com.atul.JavaOpenCV.Imshow;
import logic.helpclass.Parameters;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.opencv.core.Mat;
import org.opencv.highgui.VideoCapture;

/**
 * Usb camera interface for taking frame.
 * @author Igor Dumchykov
 */
public class USBCamera extends CameraLoaderIF {
    private static final Logger LOG = LogManager.getLogger(USBCamera.class);

    public USBCamera(int nPort, boolean isByKey) {
        this.nPort = nPort;
        this.isByKey = isByKey;
        this.imShowOrig = new Imshow("Original Image");

        capture = new VideoCapture();

    }

    @Override
    public Mat loadImage() {
        Mat frame = new Mat();

        if (isByKey) {
            KeyBoardListener kbl = new KeyBoardListener();
            imShowOrig.Window.addKeyListener(kbl);

            while (!kbl.isAPressed) {
                capture.retrieve(frame);

                if (!frame.empty())
                    imShowOrig.showImage(frame);
            }
        } else
            capture.retrieve(frame);

        return frame;
    }

    @Override
    public boolean open() {
        if (!capture.open(nPort)) {
            LOG.error("Can not open port " + nPort);
            return false;
        } else {
            LOG.trace("Port " + nPort + " was opened");
            return true;
        }
    }

}