Happy 20th Birthday CMake!

CMake is now 20! Kitware posted yesterday an interview with Bill Hoffman, the original creator for CMake and shared that August 31 was CMake’s 20th birthday

Here, in the C++ team, we are not only heavy CMake users. We also believe that CMake is a foundational piece for all C++ cross-platform developers and, as such, we strive to enable the best CMake experiences in both Visual Studio and Visual Studio Code.

#c++

What is GEEK

Buddha Community

Happy 20th Birthday CMake!

Karen Anthony

1617698173

Birthday Wishes, Happy Birthday Wishes and Quotes - Zitoc

Everyone has a special day of the year when the whole world can help them celebrate their birthday. So let Basic Invitation help you get your vote with fully customizable birthday wishes. Choose from hundreds of models for boys, girls, and adults. Basic Invitation has an invitation to adapt to almost any party theme imaginable.
This is image title
1-** Rainbows Invitations**
Bright, colorful, and happy rainbows are perfect for the birthday theme! Options to do this are self-infinite and inexpensive, while birthday-party professionals can produce amazing rainbow-inspired results. A pot of gold at the end of your rainbow birthday party planning is the face of a child beaming with happiness. So it’s worth it! Treasure.
2- Surprise Invitations
Taking a surprise birthday party is a challenge, but invitations are your ally. At first glance and every attention to this, the hidden nature of your plan is frontal and central, reminding everyone that this event is a mystery until the Great Moment. The rest of the party plans may not be as easy as the invitation, but it’s worth the effort when the surprise is amazing! We promise we won’t say it.
3- Unicorn Invitations
Birthday invitations with pleasure and imagination of the unicorn please your birthday. Sophisticated, playful, cute, glam, you decide which version of this magical creature will be filmed in your invitation. Add-a-Photo options allow you to include a special photo or turn a soft face into a unique and charming unicorn.
4- Fiesta Invitations
Birthday needs a great invitation and we offer different styles. From pennants to pints, you’ll find excellent invitations to children’s birthday parties, as well as elegant celebrations for more refined tastes.Happy Birthday
5- Pirate Invitations
It’s a pirate’s birthday! You won’t need to travel the high seas to find a great invitation. You don’t need a treasure map to find pleasure.

#happy #birthday

Queenie  Davis

Queenie Davis

1659141660

Voxel Carving Of 3D Surfaces using AR Markers for Pose Estimation/C++

Voxel Carving of 3D Surfaces using AR Markers for Pose Estimation

Final project for "3D Scanning and Motion Capture" class in SS2022 at Technical University of Munich.

1. Abstract

TODO

2. Setup

Install Eigen (Version 3.4).

Install OpenCV Library (Visual Studio 2019 VC16).

2.1. Clone the repository

Repository Structure

Data

demo_material

images

masks

Libs

src

CMakeLists.txt

README.adoc

Data

You can use Data to store images, masks, and calibration files of models you want to carve. The subfolder demo_material contains all inputs and outputs used to generate the model as described in section 4.

Libs

If you have never worked with OpenCV or Eigen you can follow the instructions below and install these libraries in the Libs directory.

src

This directory contains the implementation of this project.

2.2. Windows

2.2.1. CMake

CMake Version

Download CMake (3.9.1 or newer)

Install CMake in your prefered directory.

Add CMake to PATH variable.

2.2.2. Git BASH

Git BASH Version

Download and install Git Bash (2.14.1 or newer)

2.2.3. Eigen

Download and extract Eigen (see Eigen - Getting started).

2.2.4. OpenCV

OpenCV Version

Navigate to the directory where you wish to install OpenCV (eg. {directory}/AR_Voxel_Project/Libs)

create new file installOCV.sh with the following content:

#!/bin/bash -e

# taken from: https://docs.opencv.org/3.4/d3/d52/tutorial_windows_install.html

myRepo=$(pwd)
CMAKE_GENERATOR_OPTIONS=-G"Visual Studio 17 2022"
#CMAKE_GENERATOR_OPTIONS=-G"Visual Studio 16 2019"
#CMAKE_GENERATOR_OPTIONS=-G"Visual Studio 15 2017 Win64"
#CMAKE_GENERATOR_OPTIONS=(-G"Visual Studio 16 2019" -A x64)  # CMake 3.14+ is required
if [  ! -d "$myRepo/opencv"  ]; then
    echo "cloning opencv"
    git clone https://github.com/opencv/opencv.git
else
    cd opencv
    git pull --rebase
    cd ..
fi
if [  ! -d "$myRepo/opencv_contrib"  ]; then
    echo "cloning opencv_contrib"
    git clone https://github.com/opencv/opencv_contrib.git
else
    cd opencv_contrib
    git pull --rebase
    cd ..
fi
RepoSource=opencv
mkdir -p build_opencv
pushd build_opencv
CMAKE_OPTIONS=(-DBUILD_PERF_TESTS:BOOL=OFF -DBUILD_TESTS:BOOL=OFF -DBUILD_DOCS:BOOL=OFF  -DWITH_CUDA:BOOL=OFF -DBUILD_EXAMPLES:BOOL=OFF -DINSTALL_CREATE_DISTRIB=ON)
set -x
cmake "${CMAKE_GENERATOR_OPTIONS[@]}" "${CMAKE_OPTIONS[@]}" -DOPENCV_EXTRA_MODULES_PATH="$myRepo"/opencv_contrib/modules -DCMAKE_INSTALL_PREFIX="$myRepo/install/$RepoSource" "$myRepo/$RepoSource"
echo "************************* $Source_DIR -->debug"
cmake --build .  --config debug
echo "************************* $Source_DIR -->release"
cmake --build .  --config release
cmake --build .  --target install --config release
cmake --build .  --target install --config debug
popd

Adjust the CMAKE_GENERATOR_OPTIONS according to your Visual Studio version.

In git command line enter the following command:

./installOCV.sh

This script will generate the required installation of Open CV in the current directory (eg. {directory}/AR_Voxel_Project/Libs/install/opencv).

Keep in mind that this will take some time.

Add {directory}\Libs\install\opencv\bin to PATH.

For further information please check the official OpenCV website.

2.3. Other OS

Please refere to the following instructions:

Eigen: All OS

Open CV: Linux MacOS

2.4. Build the Project

After installing both libraries, your repository should look like this.

Repository Structure

Data

demo_material

images

masks

Libs

Eigen3

opencv

install

opencv

opencv_contrib

src

CMakeLists.txt

README.adoc

Now you are ready to generate the project using CMake. If you followed the instructions above, CMake should already have found the installation directories of Eigen and OpenCV. Make shure that Eigen3_DIR and OpenCV_DIR are set correctly.

After compiling the project, you are ready to carve your first model.

3. Example

The following example gives visualize the carved model of our demo object. If you want to reproduce our results, you can use this dataset. For comparison we also provide details about the configuration and the expected output meshes.

600

Figure 1. Example Input Image (total of 8)

600

Figure 2. Generated Model: post processing and color reconstruction (Method 2 - color averaging) applied.

4. How to run?

4.1. Generate ChArUco Board

Run

$ ./voxel_project.exe -c=1

This command will generate a new subdirectory out containing the file BoardImage.jpg. This ChArUco Board can be used to calibrate your individual camera and later on carve your own models.

4.2. Camera Calibration

Run

$ ./voxel_project.exe -c=2

Perform camera calibration on previously taken images or take images using a connected camera and perform calibration on those.

After initial calibration, the user can interactively choose to exclude specific images by ID (e.g. outliers). For this, reprojection errors are provided for individual images, as well as the overall error.

The final data is saved to a .yml file that can be specified using -calibration

FlagDefaultDescription
-live=true/falsetrueWhether the images used for calibration should be taken live using a connected camera. If false, a folder with images for calibration has to be provided to -images.
-cam_id=<cam_id>0The camera to use when performing live calibration. 0 should be the system’s default device.
-images="<images-dir>"

Ignored if live==true

NonOptional if live==false

Directory of the input images to be used for calibration e.g. ./Data/demo_material/images.
-calibration="<calibration-file>"out/cameracalibration.ymlOutput file for the camera calibration data.

4.3. Segmentation

Run

$ ./voxel_project.exe -c=3

TODO

4.4. Carve your own model

Run

$ ./voxel_project.exe -c=5 -images="<images-dir>" -masks="<masks-dir>" -calibration="<cameracalibartion.yml-dir>" -carve=<carving-method> -x=<x-dim> -y=<y-dim> -z=<z-dim> -size=<voxel-size> -scale=<model-scale> -dx=<x-offset> -dy=<y-offset> -dz=<z-offset> -color=<color-method> -model_debug=<model_debug-method> -postprocessing=<postprocessing-method> -intermediateMesh=<intermediateMesh-generation> -outFile=<out_file_path>

This command will generate a new file out/mesh.off containing the mesh generated by carving your specified inputs. To understand more about the flags please refere to the table below.

Table 1. Flags

FlagDefaultDescription
-images="<images-dir>"NonOptionalDirectory of the input images e.g. ./Data/demo_material/images.
-masks="<masks-dir>"NonOptionalDirectory of the masks e.g. ./Data/demo_material/masks.
-calibration="<cameracalibartion.yml-dir>"NonOptionalDirectory of the masks e.g. ./Data/demo_material/cameracalibration.yml.
-carve=<carving-method>1

1 - standard carving

2 - greedy carving (fast)

-x=<x-dim>100Number of voxels in x direction.
-y=<y-dim>100Number of voxels in y direction.
-z=<z-dim>100Number of voxels in z direction.
-size=<voxel-size>0.0028Side length of a voxel.
-scale=<model-scale>1.0Scale factor for the output model.
-dx=<x-offset>0.0Move output model in x direction (unscaled).
-dx=<y-offset>0.0Move output model in y direction (unscaled).
-dx=<z-offset>0.0Move output model in z direction (unscaled).
-color=<color-method>0

0 - no color reconstruction

1 - nearest observer

2 - average color

-model_debug=<model_debug-method>false

true - generate debug model (1 cube ~ 1 visible voxel)

false - do not generate debug model

-postprocessing=<postprocessing-method>true

true - apply postprocessing on the model

false - do not apply postprocessing

-intermediateMesh=<intermediateMesh-generation>false

true - Generates a mesh after each processed image. Only works with carving method 1

false - intermediate mesh generation disabled

-outFile=<out_file_path>./out/mesh.offFilepath the generated mesh will be written to. Should end with .off.

4.5. Benchmarking

Run

$ ./voxel_project.exe -c=6 -images="<images-dir>" -masks="<masks-dir>" -calibration="<cameracalibartion.yml-dir>"

This command will execute the provided benchmarking cases on the specified data. For each case a mesh file will be generated in out/bench. Additionally, the bash will print a table containing information about the test cases and exectuion times (see table below). For more information about the flags please refer to the table above.

Table 2. Benchmark output

ColumnDescription
Name

Short description of the testcase

Model size (Small, Medium, Large)

Carving method (1 - standard, 2 - greedy)

Coloring mehtod

Model sizeModel dimensions (x, y, z direction) and voxel size
Carving timeTime needed to execute carving process (in milliseconds)
Coloring timeTime needed to execute coloring process (in milliseconds)
Postprocessing timeTime needed for postprocessing (in milliseconds)
Marching cubes timeTime needed to transform model into .off-format sutiable representation using the marching cubes algorithm (in milliseconds)
Overall timeTime needed for complete reconstruction process (including output file writing and variable initializations, excluding image loading) (in milliseconds)

TODO

textexample [1] text example [2] te xt exam ple.

References

[1] Resource 1

[2] Resource 2


Author: alxfox
Source code: https://github.com/alxfox/AR_Voxel_Project
License:

#cpluplus 

Happy 20th Birthday CMake!

CMake is now 20! Kitware posted yesterday an interview with Bill Hoffman, the original creator for CMake and shared that August 31 was CMake’s 20th birthday

Here, in the C++ team, we are not only heavy CMake users. We also believe that CMake is a foundational piece for all C++ cross-platform developers and, as such, we strive to enable the best CMake experiences in both Visual Studio and Visual Studio Code.

#c++

Oscar Cooper

1621486341

Things to consider while selecting the perfect birthday venue in Prahran

Birthday parties are all about having fun and doing some exciting activities. You’re all set on what you’re about to do and how everything is planned perfectly but did you give a thought about the venue.

Read more.

#cafe prahran #21st birthday venue prahran #30th birthday venue chapel street #birthday functions prahran #functions prahran #private function prahran

Abigail betty

Abigail betty

1623618000

Why Money didn't make me happy (as a millionaire)

Ex-Google TechLead and multi-millionaire explains his first-world problems.
📺 The video in this post was made by TechLead
The origin of the article: https://www.youtube.com/watch?v=B-emtL137z4
🔺 DISCLAIMER: The article is for information sharing. The content of this video is solely the opinions of the speaker who is not a licensed financial advisor or registered investment advisor. Not investment advice or legal advice.
Cryptocurrency trading is VERY risky. Make sure you understand these risks and that you are responsible for what you do with your money
🔥 If you’re a beginner. I believe the article below will be useful to you ☞ What You Should Know Before Investing in Cryptocurrency - For Beginner
⭐ ⭐ ⭐The project is of interest to the community. Join to Get free ‘GEEK coin’ (GEEKCASH coin)!
☞ **-----CLICK HERE-----**⭐ ⭐ ⭐
(There is no limit to the amount of credit you can earn through referrals)
Thanks for visiting and watching! Please don’t forget to leave a like, comment and share!

#bitcoin #blockchain #money #happy #why money didn't make me happy