JAVACV is an open source visual processing library, based on the GPLV2 protocol, for a variety of common computer visual library package of a set of jar package, encapsulated OpenCV, libdc1394, Openkinect, Videoinput and Artoolkitplus and other computer vision programmers Common Library interface. JAVACV these interfaces via the utility class, which is easy to use on the Java platform, including Android.
terminal video playback push flow scheme
programme I:
Advantages: Support Streaming media playback, disadvantage: Poor server-side codec performance (codec)
Data Flow processing:
Programme II:
Advantages: Small server pressure (do not do codec), disadvantage: Client playback support Scheme fixed
Streaming media processing process
Related Knowledge Description
some knowledge of JAVACV
The Mat class represents a picture matrix in which the images to be processed are read into the matrix.
The Videocapture class represents a video object whose open () method passes the video address to open the video, and the device number is to open the camera.
Some essential knowledge of pictures
(i) Recognition of images
The picture is divided into vector graph and like Sotutu, Vector graph is by mathematical expression, more abstract, not very good understanding, for example in your mind imagine a quadrilateral, this quadrilateral is vector. CDR, CAD processing of the image is a vector map, because it is mathematical representation, you can enlarge and shrink infinitely, does not produce sawtooth. Pixel map is composed of the pixels of the matrix, each pixel is a small square, each box can only display a color, the more dense pixel points per unit area, the clearer the image. But after zooming in because the pixel is square, you can see the sawtooth. PS software is the processing of pixel graphs. JAVACV is also a typical pixel image processing software, through the camera, the camera gets the pictures are pixel map.
(b) Recognition of pixel points
Pixel points can only display one color at a time, the color consists of 3 basic color (RGB) or 4 basic color (CMYK), in any Device color screen display is RGB pixels, color printer printing is CMYK color. This is why the color displayed on the computer is different from the color printed. The main algorithm of JAVACV is to compute the color of pixels, and to obtain the similarity degree by various mathematical transformations. I personally think that this way is too far-fetched, or to work on the vector map, because all the images in the brain are vector. (Personal opinion, don't spray, Cherubim)
(ii) Awareness of video
Video consists of a picture, a frame represents a picture, frame rate is the number of switches per second to switch how many pictures.
Related Learning Resources
OpenCV Manual (where you can start learning the construction of coded environments): http://opencv-java-tutorials.readthedocs.io/en/latest/
OpenCV api:https://docs.opencv.org/
JAVACV Download Address: http://www.softpedia.com/get/Programming/Other-Programming-Files/JavaCV.shtml
JAVACV GitHub Address: HTTPS://GITHUB.COM/BYTEDECO/JAVACV
JAVACV Example: Https://github.com/bytedeco/javacv-examples
Personal Learning Example: Https://github.com/SunFlowerOfProtocol/javacv-cvnavi-demo
More actual coding examples reference: Java audio and video development detailed
developing the Maven dependency configuration
Pom.xml, some packages make choices based on their environment.
<?xml version= "1.0" encoding= "UTF-8"?> <project xmlns= "http://maven.apache.org/POM/4.0.0" xmlns:xsi= "HTT" P://www.w3.org/2001/xmlschema-instance "xsi:schemalocation=" http://maven.apache.org/POM/4.0.0 Http://maven.apach E.org/xsd/maven-4.0.0.xsd "> <modelVersion>4.0.0</modelVersion> <GROUPID>COM.CVNAVI.JAVACV&L T;/groupid> <artifactId>javacv-cvnavi-demo</artifactId> <version>1.0-snapshot</version&
Gt <dependencies> <!--HTTPS://MVNREPOSITORY.COM/ARTIFACT/ORG.BYTEDECO/JAVACV--> <dependency&
Gt <groupId>org.bytedeco</groupId> <artifactId>javacv</artifactId> <versio N>1.3.3</version> </dependency> <!--https://mvnrepository.com/artifact/org.bytedeco/jav Acpp--> <dependency> <groupId>org.bytedeco</groupId> <artifactid& Gt;jAvacpp</artifactid> <version>1.3.3</version> </dependency> <!--htt Ps://mvnrepository.com/artifact/org.bytedeco/javacv-platform--> <dependency> <groupId> Org.bytedeco</groupid> <artifactId>javacv-platform</artifactId> <version>1 .3.3</version> </dependency> <!--https://mvnrepository.com/artifact/org.bytedeco.javacpp-p
RESETS/OPENCV--> <dependency> <groupId>org.bytedeco.javacpp-presets</groupId> <artifactId>opencv</artifactId> <version>3.2.0-1.3</version> </de
pendency> <!--https://mvnrepository.com/artifact/org.bytedeco.javacpp-presets/opencv-platform--> <dependency> <groupId>org.bytedeco.javacpp-presets</groupId> <artifactid> ; Opencv-platform</artIfactid> <version>3.2.0-1.3</version> </dependency> <!--https://mvnre Pository.com/artifact/org.bytedeco.javacpp-presets/ffmpeg--> <dependency> <groupid>org .bytedeco.javacpp-presets</groupid> <artifactId>ffmpeg</artifactId> <version& Gt;3.2.1-1.3</version> </dependency> <!--HTTPS://MVNREPOSITORY.COM/ARTIFACT/ORG.BYTEDECO.J Avacpp-presets/ffmpeg-platform--> <dependency> <GROUPID>ORG.BYTEDECO.JAVACPP-PRESETS&L T;/groupid> <artifactId>ffmpeg-platform</artifactId> <version>3.2.1-1.3</v Ersion> </dependency> <!--https://mvnrepository.com/artifact/com.github.hoary.ffmpeg/FFmpeg-w
indows-x86_64--> <dependency> <groupId>com.github.hoary.ffmpeg</groupId> <artifactid>fFmpeg-windows-x86_64</artifactid> <version>2.0.1.1</version> </dependency> </dependencies> </project>
Note: JAVACV is actually encapsulated in OpenCV, if you want to learn more about the recommendations or start from OpenCV to learn the basics classes.