This project contains my Computer Vinson Projects with OpenCV.
There is docker file for this project that contains all dependencies and you build the image with :
docker build -t myopencv_image:latest .
Create a container where you mount the checkout code into your container:
docker run --name <continer-name> -v <checked-out-path-on-host>:<path-in-the-container> -it <docker-image-name>
for instance:
docker run --name myopencv_container -v /home/$USER/workspace/OpenCVProjects:/OpenCVProjects -it myopencv_image
If you have already created a container from the docker image, you can start it with:
docker start -i myopencv_container
You can remove unnecessary images and containers by:
docker image prune -a
docker container prune
- You need to run:
xhost +local:docker
and then:
docker run -v <path-on-host>:<path-in-the-container> -v /tmp/.X11-unix:/tmp/.X11-unix --name <container-name> -e DISPLAY=$DISPLAY -e QT_X11_NO_MITSHM=1 --network=host --privileged -it <image-name:tag> bash
read more here
configure it:
cmake -G "Ninja Multi-Config" -S . -B build -DOpenCV_DIR="/home/$USER/usr/lib/cmake/opencv4"
build it:
cmake --build build --config Release
or
cmake --build build --config Debug
or be more specific:
cmake --build build --target all --config Release
If you prefer preset
use:
cmake --preset ninja-multi
and
cmake --build --preset ninja-multi-debug
or
cmake --build --preset ninja-multi-release
Install the conda packages:
unset PYTHONPATH
export PYTHONNOUSERSITE=1
conda create -n OpenCVProjects
conda activate OpenCVProjects
conda install conda-forge::opencv
conda install scipy numpy matplotlib scikit-image
conda install -c conda-forge jupyterlab
conda install anaconda::ipywidgets
create softlinks:
cd $HOME/anaconda3/envs/OpenCVProjects/
ln -s $HOME/workspace/OpenCVProjects/scripts .
ln -s $HOME/workspace/OpenCVProjects/images/ .
Edge Detection
Image Filtering Convolution
Histogram Analysis
Keypoints Detector and Descriptor
Pinhole Camera Model and Projection
Direct Linear Transformation
Zhang's Camera Calibration Algorithm
Extrinsic Calibration of Camera to LIDAR
Image Resolution and Calibration Parameter
Affine Transformation
Perspective Transformation
Homography Transformation
Lense Distortion Modeling, Image Undistortion
Triangulation
Epipolar Geometry
Essential Matrix
Extraction of Camera Motion
Fundamental Matrix
Image Rectification
Image Registration
Correspondence Problem
Image Matching WebUI
Stereo Vision, Disparity Map
Stereo Calibration
Parallax
Sparse Optical Flow
Dense Optical Flow
Visual Odometry
KITTI Visual Odometry
Ego Motion Estimation
Recover Pose and Pose Estimation
Laser Triangulation
Bayes Filter, Estate Estimation with Kalman Filter, Extended Kalman Filter
Bag of Words
Vocabulary Tree
Perspective-n-point
3D World Unit Vector Camera Direction Vectors Camera Projection Rays
Undistorting Points and Images
Hand Eye Calibration
Normalized Image Coordinates
Camera Models
Perspective Camera
Kannala-Brandt Fisheye Camera
Spherical Camera
Color Space
Color Calibration
Dynamic Range
White Balance
Basic Operations
Coordinate System and Points
File Storage IO
Blob Detection
Corner Detection
Feature Detection
Feature Description
Image Moments
PCA Principal Component Analysis
Morphological Transformation
Hough Transform
Homogeneous Conversion
Camera Calibration
Projection Matrix, Camera Intrinsic
Perspective-n-point
3D World Unit Vector
Essential Matrix Estimation
Fundamental Matrix Estimation
Rodrigue, Rotation Matrices
Tracking Objects by Color
Image Remaping
Undistorting Images
Rectifying Images
Triangulation
ICP Iterative Closest Point
Structured Light Range Finding
Estate Estimation with Kalman Filter
Drawing Frame Axes
Writing video by choosing encoder using ffmpeg and libav
Plot Frame poses in 3d
Euler Angle, Roll,Pitch, Yaw, Quaternion
Available encoders and decoders
1. FFmpeg Common Options
2. FFmpeg Filters
2.1 Available Filters
2.2 Send Output of FFmpeg Directly to FFplay
2.3 Apply a Filter
2.4 Filter Graph
2.5 Filter Complex
2.6 Filter Complex vs Filter Graph
2.7 Setting Number of Threads
2.8 Commonly Used FFmpeg Filters
3. ffprobe
4. ffmpeg metadata
5. Setting encoder for a specific codec
6. Set the format (container) and codec for the output
7. map
8. graph2dot
9. Determining Pixel Format
Colmap
Photogrammetry
Structure from Motion (SfM)
Bundle Adjustment
Noah Snavely reprojection error