mirror of
https://gitcode.com/gh_mirrors/es/esp32-opencv.git
synced 2025-08-16 03:40:59 +08:00
initial commit
This commit is contained in:
@ -0,0 +1,79 @@
|
||||
import org.opencv.core.Core;
|
||||
import org.opencv.core.Mat;
|
||||
import org.opencv.core.Point;
|
||||
import org.opencv.core.Scalar;
|
||||
import org.opencv.highgui.HighGui;
|
||||
import org.opencv.imgproc.Imgproc;
|
||||
import org.opencv.video.BackgroundSubtractor;
|
||||
import org.opencv.video.Video;
|
||||
import org.opencv.videoio.VideoCapture;
|
||||
import org.opencv.videoio.Videoio;
|
||||
|
||||
class BackgroundSubtraction {
|
||||
public void run(String[] args) {
|
||||
String input = args.length > 0 ? args[0] : "../data/vtest.avi";
|
||||
boolean useMOG2 = args.length > 1 ? args[1] == "MOG2" : true;
|
||||
|
||||
//! [create]
|
||||
BackgroundSubtractor backSub;
|
||||
if (useMOG2) {
|
||||
backSub = Video.createBackgroundSubtractorMOG2();
|
||||
} else {
|
||||
backSub = Video.createBackgroundSubtractorKNN();
|
||||
}
|
||||
//! [create]
|
||||
|
||||
//! [capture]
|
||||
VideoCapture capture = new VideoCapture(input);
|
||||
if (!capture.isOpened()) {
|
||||
System.err.println("Unable to open: " + input);
|
||||
System.exit(0);
|
||||
}
|
||||
//! [capture]
|
||||
|
||||
Mat frame = new Mat(), fgMask = new Mat();
|
||||
while (true) {
|
||||
capture.read(frame);
|
||||
if (frame.empty()) {
|
||||
break;
|
||||
}
|
||||
|
||||
//! [apply]
|
||||
// update the background model
|
||||
backSub.apply(frame, fgMask);
|
||||
//! [apply]
|
||||
|
||||
//! [display_frame_number]
|
||||
// get the frame number and write it on the current frame
|
||||
Imgproc.rectangle(frame, new Point(10, 2), new Point(100, 20), new Scalar(255, 255, 255), -1);
|
||||
String frameNumberString = String.format("%d", (int)capture.get(Videoio.CAP_PROP_POS_FRAMES));
|
||||
Imgproc.putText(frame, frameNumberString, new Point(15, 15), Core.FONT_HERSHEY_SIMPLEX, 0.5,
|
||||
new Scalar(0, 0, 0));
|
||||
//! [display_frame_number]
|
||||
|
||||
//! [show]
|
||||
// show the current frame and the fg masks
|
||||
HighGui.imshow("Frame", frame);
|
||||
HighGui.imshow("FG Mask", fgMask);
|
||||
//! [show]
|
||||
|
||||
// get the input from the keyboard
|
||||
int keyboard = HighGui.waitKey(30);
|
||||
if (keyboard == 'q' || keyboard == 27) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
HighGui.waitKey();
|
||||
System.exit(0);
|
||||
}
|
||||
}
|
||||
|
||||
public class BackgroundSubtractionDemo {
|
||||
public static void main(String[] args) {
|
||||
// Load the native OpenCV library
|
||||
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
|
||||
|
||||
new BackgroundSubtraction().run(args);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user