Skip to content

LuisOrtizF/Robotic_and_Computer_Vision_Projects_cpp_1

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Robotic and Computer Vision Projects with C++


This repository contains projects of computer vision tasks implemented with C++ libraries.

opencv_logo pcl_logo cmake_logo
  • Capture_Data_Kinect1_Kinect2 (Registered)_ZED: Using the Kinect 1, Kinect 2 or a Stereolabs ZED camera, you can save undistorted RGB images (.png), depth maps (.png) and point clouds (.pcd). Additionally, save the camera calibration parameters (.txt). The RGB images of the Kinect 2 are registered (RGB-depth) to their depth map.
    • how use: ./capture __*ZED*__
    • output: folder /build/SavedFiles/ with all capture data.
  • Capture_Data_Kinect1_Kinect2 (UnRegistered)_ZED: Using the Kinect 1, Kinect 2 or a Stereolabs ZED camera, you can save undistorted RGB images (.png), depth maps (.png) and point clouds (.pcd). Additionally, save the camera calibration parameters (.txt). The RGB images of the Kinect 2 are unregistered (RGB-depth) to their depth map.
    • how use: ./capture __*ZED*__
    • output: folder /build/SavedFiles/ with all capture data.
zed kinect_v1 kinect_v2
  • Chessboards_Corners_Detection: Detect and plot the corners of a chessboard using OpenCV.
    • how use: ./corners
  • Compare_Depth_form_Aruco_and_ZED: Comparison between the depth measured using an Aruco marker and the depth measured with the Stereolabs ZED Camera API. The camera is mounted in a robot Pioneer 3AT. The robot can be drive in two modes: manual (with keyboard) and automatic.
    • how use: ./compareDepth VGA or HD720 or HD1080 or HD2K
  • Compute_3D_Normals_Keypoints_Correspondences: Compute the normals, keypoints and correspondences in point clouds using PCL.
    • how use: ./correspondences3D robot1.pcd <normals or keypoints or correspondences>
<td> <img src="/Images/normals3D.png" width="600" height="100" alt="normals3D" /> </td>
<td> <img src="/Images/keypoints3D.png" width="600" height="100" alt="keypoints3D" /> </td>
<td> <img src="/Images/correspondences3D.png" width="600" height="100" alt="correspondences3D" /> </td>
  • Compute_Depth_Error_in_RGBD_Sensors: Detect and plot the corners of a chessboard in real-time using OpenCV and a webcam.
    • inputs:
      • device: Kv1 or Kv2 or ZED_WVGA
      • save_viewers: off or on
      • flag: after or before
    • how use: ./depth_error ../Data/ <device> <save_viewers> <flag>
  • Compute_Depth_RMS_Error: Computes the depth error between the ground truth (Smart Markers) and the depth computed by a ZED camera.
    • inputs:
      • e1: video in (.svo) format, recorded with a ZED camera
      • mm_our: optimized markers map get by Smart Markers
      • arucoConfig_7: Aruco detection configuration file
      • e1_gt_poses: ground truth camera poses
      • e1_zed_poses: camera poses get by ZED API
    • output:
      • output: file /input/output/e1_r3D_data.txt with timestamp and camera poses (3D position and quaternion).
    • how use: ./depth_rmse ../input/e1.svo ../input/mm_our.yml ../input/arucoConfig_7.yml ../input/e1_gt_poses.txt ../input/e1_zed_poses.txt
depth_rmse
  • Compute_Essential_and_Fundamental_Matrix: Compute the Essential and Fundamental matrix using OpenCV.
    • how use: ./essential_fundamental
fundamental
  • Compute_Hausdorff_Distance: Compute Hausdorff distance between two point clouds.

    • how use: ./hausdorff ../Data/input_cloud.pcd ../Data/taget_cloud.pcd
  • Convert_SVO(LeftCam)_Video_to_AVI:

    • inputs:
      • svo_video: video in (.svo) format, recorded with a ZED camera
      • avi_video: name for the output (.avi) video
    • how use: ./svo2avi <svo_video> <output_video>
    • example: ./svo2avi ../Data/test.svo ../Data/test.avi
  • Correct_Sitting_Position: Demonstrates using PCL and ICP algorithm to correct sitting position using point clouds.
    • inputs:
      • initial_cloud: point cloud of a person in correct sitting position
      • target_cloud: point cloud of a person in correct sitting position
      • mode_visualization: 0 bi-color or 1 rgb-color
    • how use: ./correct_position initial_cloud.pcd target_cloud 1
sitting_correction
  • Crop_Images: Crop images using OpenCV.
    • input: folder ../Images with the images to be crop
    • output: folder ../CroopedImages with the crooped images
    • how use: ./crop ../Images/
  • Detect_Aruco_Marker: Simple Aruco marker detection on a image.
    • how use: ./aruco_image ../Images/test_0.jpg
  • Detect_Aruco_with_UVC_Cam: Simple Aruco marker detection in real-time using a webcam.
    • how use: ./aruco_webcam
  • Detect_Aruco_with_ZED: Simple Aruco marker detection in real-time using ZED camera.
    • how use: ./aruco_zed VGA or HD720 or HD1080 or HD2K
  • Detect_FractalMarker_ZED: Simple Aruco fractal marker detection in real-time using ZED camera.
    • how use: ./fractal VGA or HD720 or HD1080 or HD2K
  • Detect_MarkerMap_on_Video: Track a camera using Aruco Marker Map detection.
    • inputs:
      • mm.avi: video with Aruco markers
      • mono_params.yml: intrinsic parameters of a monocular camera
      • marker_size: markers size in meters
    • how use: ./mm_track ../Data/mm.avi ../Data/mm_our.yml ../Data/mono_params.yml 0.1295
mm_track
  • Extract_3D_Plane_from_ZED_Video: Extract and visualize the most representative 3D plane in a point cloud.
    • how use: ./extract_plane ../Data/test_0.svo
  • Extract_3D_Planes_from_PCL_Cloud: Segment the largest 3D planar components from a point cloud

    • how use: ./extract_planes
    • outputs:
      • ../Data/downsampled_cloud.pcd: point cloud after filtering
      • ../Data/detected_plane_0.pcd: point cloud representing the planar component

Installation:

  • Dependences (mandatory):

    • ZED SDK 3.0
    • CUDA 10.0
    • OpenCV 3.4.1
    • Aruco 3.0.12
    • PCL 1.8
    • ARIA or ARIACODA
    • UcoSLAM
    • Boost
    • Freenect2
    • Libviso2
    • Open-NI
    • Libusb 1.0
  • Download any project and open a terminal ctrl+t:

    $ cd path 
    $ mkdir build & cd build 
    $ cmake .. 
    $ make
    

NOTE:

If you find any of these codes helpful, please share my GitHub and STAR ⭐ this repository to help other enthusiasts to find these tools. Remember, the knowledge must be shared. Otherwise, it is useless and lost in time.

About

This repository contains projects of computer vision tasks implemented with C++ libraries.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published