With the introduction of the new OpenCV 4.4.0, I updated the Processing library CVImage to the latest version of OpenCV. In this version, I take out the support for Linux and the contributed library optflow.
Capture midi messages in Processing during playback
The 2nd midi in Processing example will use the Receiver interface to capture all the midi messages during the playback of a midi file. The program uses the custom GetMidi class to implement the Receiver interface. During the playback, it will display the NOTE_ON message with information of channel, octave and note.
The source code of the example is also in the Magicandlove GitHub repository.
Using midi in Processing for playback
This is my first use of midi in Processing. I do not use the MidiBus library for Processing. Instead, I try to use the standard midi package in Java. The SE8 standard Java package also contains the javadoc documentation.
The Processing source code and sample midi files are in the Magicandlove GitHub repository. The midi example files are downloaded from the midiworld website.
The code basically needs a Synthesizer class to render midi instruments into audio and a Sequencer class to playback the midi sequence.
Synthesizer synth = MidiSystem.getSynthesizer();
Sequencer player = MidiSystem.getSequencer();
synth.open();
player.open();
All the midi music files are in the data folder of the Processing sketch. To playback each piece of midi music, we need to convert each into a Java File object and use the following code to playback it. The variable f is a File object instance containing the midi file in the data folder.
Sequence music = MidiSystem.getSequence(f);
player.setSequence(music);
player.start();
OpenCV 4.0.0 Java Built and CVImage library
OpenCV 4.0.0 is now available in the official OpenCV.org website. I have compiled and packaged the CVImage library from my book together with the Java build of the new OpenCV library.
You can download the CVImage library here.
Intel Realsense depth image in Processing (Windows only)
The second testing is also based on the Java wrapper of the Intel Realsense SDK by Edwin Jakobs. The version is the display of the 16 bit depth image from Processing.
The source code again can be available from the GitHub repository of this post.
Intel Realsense colour image in Processing (Windows only)
The testing is based on the Java wrapper of the Intel Realsense SDK, version 2 found in the following GitHub repository.
https://github.com/edwinRNDR/librealsense/tree/master/wrappers/java.
It only provides the pre-built binary for Windows version. I used it to test with my Intel Realsense D415 camera. The image below is the screenshot of the camera view.
The source code can be found in the GitHub repository of this post.
Movement in Space (version 2) Testing videos
A new version of the Movement in Space project will be exhibition end of this year as an installation piece. Here are some testing videos.
The work is rewritten from the original web version to a Processing version. The animation is built with 3 parametric harmonic formulae. The outputs from one animation can be used as inputs for another formula, in order to simulate the artificial neural network.
Neural network style transfer in OpenCV with Processing
The example is the Processing implementation of the OpenCV sample, fast_neural_style.py to work with live style transfer using existing pre-trained Torch models.
The complete source code is in my GitHub repository of this website at ml20180827a.
Face landmark detailed information
Referring back to the post on face landmark detection, the command to retrieve face landmark information is
fm.fit(im.getBGR(), faces, shapes); |
where im.getBGR() is the Mat variable of the input image; faces is the MatOfRect variable (a number of Rect) obtained from the face detection; shapes is the ArrayList<MatOfPoint2f> variable returning the face landmark details for each face detected.
Each face is a MatOfPoint2f value. We can convert it to an array of Point. The array has length 68. Each point in the array corresponds to a face landmark feature point in the face as shown in the below image.