1602894120
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++
1617698173
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.
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
1659141660
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.
TODO
Install Eigen (Version 3.4).
Install OpenCV Library (Visual Studio 2019 VC16).
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.
Download CMake
(3.9.1 or newer)
Install CMake
in your prefered directory.
Add CMake
to PATH
variable.
Download and install Git Bash
(2.14.1 or newer)
Download and extract Eigen
(see Eigen - Getting started).
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.
Please refere to the following instructions:
Eigen: All OS
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.
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.
Figure 1. Example Input Image (total of 8)
Figure 2. Generated Model: post processing and color reconstruction (Method 2 - color averaging) applied.
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.
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
Flag | Default | Description |
---|---|---|
-live=true/false | true | Whether 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> | 0 | The 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.yml | Output file for the camera calibration data. |
Run
$ ./voxel_project.exe -c=3
TODO
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
Flag | Default | Description |
---|---|---|
-images="<images-dir>" | NonOptional | Directory of the input images e.g. ./Data/demo_material/images . |
-masks="<masks-dir>" | NonOptional | Directory of the masks e.g. ./Data/demo_material/masks . |
-calibration="<cameracalibartion.yml-dir>" | NonOptional | Directory of the masks e.g. ./Data/demo_material/cameracalibration.yml . |
-carve=<carving-method> | 1 |
|
-x=<x-dim> | 100 | Number of voxels in x direction. |
-y=<y-dim> | 100 | Number of voxels in y direction. |
-z=<z-dim> | 100 | Number of voxels in z direction. |
-size=<voxel-size> | 0.0028 | Side length of a voxel. |
-scale=<model-scale> | 1.0 | Scale factor for the output model. |
-dx=<x-offset> | 0.0 | Move output model in x direction (unscaled). |
-dx=<y-offset> | 0.0 | Move output model in y direction (unscaled). |
-dx=<z-offset> | 0.0 | Move output model in z direction (unscaled). |
-color=<color-method> | 0 |
|
-model_debug=<model_debug-method> | false |
|
-postprocessing=<postprocessing-method> | true |
|
-intermediateMesh=<intermediateMesh-generation> | false |
|
-outFile=<out_file_path> | ./out/mesh.off | Filepath the generated mesh will be written to. Should end with .off . |
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
Column | Description |
---|---|
Name | Short description of the testcase Model size (Small, Medium, Large) Carving method ( Coloring mehtod |
Model size | Model dimensions (x, y, z direction) and voxel size |
Carving time | Time needed to execute carving process (in milliseconds) |
Coloring time | Time needed to execute coloring process (in milliseconds) |
Postprocessing time | Time needed for postprocessing (in milliseconds) |
Marching cubes time | Time needed to transform model into .off -format sutiable representation using the marching cubes algorithm (in milliseconds) |
Overall time | Time 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.
[1] Resource 1
[2] Resource 2
Author: alxfox
Source code: https://github.com/alxfox/AR_Voxel_Project
License:
1602894120
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++
1621486341
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.
#cafe prahran #21st birthday venue prahran #30th birthday venue chapel street #birthday functions prahran #functions prahran #private function prahran
1623618000
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