Written on Friday May 04, 2018
Here at loopbio gmbh we use and recommend the Python programming language. For image processing our primary choice is Python + OpenCV.
Customers often approach us and ask what stack we use and how we set up our environments. The short answer is: we use conda and have our own packages for OpenCV and FFmpeg.
In the following post, we will bravely explain how easy it is to set up a Conda environment for image processing using miniconda and our packages for OpenCV and a matched FFmpeg version on Linux (Ubuntu). If you are not familiar with the concept of Conda: Conda is a package manager and widely used in science, data analysis and machine learning, additionally, it is fairly easy and convenient to use.
If you are more interested in why we are using OpenCV, FFmpeg and Conda and what performance benefits you can expect from our packages please check out our other posts.
- Download the appropriate 3.X installer
- In your Terminal window, run:
- Follow the prompts on the installer screens. If you are unsure about any setting, accept the defaults. You can change them later. To make the changes take effect, close and then re-open your Terminal window.
- Test your installation (a list of pacakages should be printed).
More information is provided here
Setting up the environment
# Before getting our conda packages, get a conda-forge based environment. # For example, use conda-forge by default for all your environments. conda config --add channels conda-forge # Create a new conda environment conda create -n loopbio # Source that environment source activate loopbio # install FFmpeg # install and pin ffmpeg GPL (including libx264)... conda install 'loopbio::ffmpeg=*=gpl*' # ...or install and pin ffmpeg LGPL (without libx264) conda install 'loopbio::ffmpeg=*=lgpl*' # install and pin opencv conda install 'loopbio::opencv=3.4.1'
Reading a video file
# Make sure that the loopbio environment is activated source activate loopbio # Start Python python
import cv2 cap = cv2.VideoCapture('Downloads/small.mp4') ret, frame = cap.read() print frame