From 8c90648f07f68d37b9b0ad0581e44fa069aa758a Mon Sep 17 00:00:00 2001 From: unlin Date: Thu, 24 Oct 2019 23:04:51 +0800 Subject: [PATCH] Update Readme.md. --- README.md | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 63 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 8b26f2d..38559b1 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,64 @@ # libbwabstraction -Source of paper "Scale-aware Black-and-White Abstraction of 3D Shapes" in SIGGRAPH 2018. +Code for the paper "Scale-aware Black-and-White Abstraction of 3D Shapes" in SIGGRAPH 2018. Please visit [our project webpage](https://cgv.cs.nthu.edu.tw/projects/Shape_Analysis/BW_Abstraction) to learn more about this paper. + +## Features + +#### C++ Library +The algorithm described in our paper is wrapped inside a simple, easy-to-use C++ interface. Check this snippet out: + +```C++ + // initialize data structures for libbwabstraction + bwabstraction::Parameters param; + bwabstraction::BWAbstraction bwa; + bwabstraction::Result result; + + // load camera mvp and model file + param.LoadMVPMatrixFromFile("camera.txt"); + bwa.LoadModel("model.obj", param); + + // render with desired parameters + param.renderWidth = 3200; + param.rednerHeight = 2400; // just to show a few options... + bwa.Render(&result, param); + + // the results are available as cv::Mat images + cv::imwrite("bwaImage.png", result.bwaImage); +``` + +#### Example Code & CLI Tool +We have documented example codes and a CLI tool for easy use. The tool works like: + +`> bwa_cli model.obj camera.txt bwaImage.png --scale=0.8` + +#### GUI Tool +Further more, a Qt-based GUI tool is provided for quick visualization and interactive control of the algorithm. + +![image](https://github.com/unlin/libbwabstraction/blob/master/qtgui_01.png?raw=true) +![image](https://github.com/unlin/libbwabstraction/blob/master/qtgui_02.png?raw=true) + +## Prebuilt Binary +We provide Windows prebuilt binaries, including example code executable, command line tool, GUI tools and development library. Take a look at the [latest release](https://github.com/unlin/libbwabstraction/releases/latest)! + +## Compile +If the prebuilt binaries are not good enough for you, we also provide configured build script for you. Everything can be built on both Windows x64 and MacOSX. + +#### Dependencies +Before you can compile the library, the following dependency libraries should be installed on your system. +* [Boost C++ Libaries](https://www.boost.org/) +* [CGAL](https://www.cgal.org/) +* [Eigen](http://eigen.tuxfamily.org/) +* [GLEW](http://glew.sourceforge.net/) +* [GLFW](https://www.glfw.org/) +* [glm](https://glm.g-truc.net/) +* [OpenCV](https://opencv.org/) +* [opengm](https://github.com/opengm/opengm) +* [OpenMesh](https://www.openmesh.org/) +* [libgmp](https://gmplib.org/) +* [libmpfr](https://www.mpfr.org/) +* [cxxopts](https://github.com/jarro2783/cxxopts) + +#### Windows x64 +Use the Visual Studio 2015 solution `/vc14/libbwabstraction.sln`. Two configurations are available: x64 Debug and x64 Release. For the Qt GUI application, use the Qt project `/tools/qtgui/qtgui.pro`. + +#### MacOSX +Use [CMake](https://cmake.org/) to build the provided `/cmakelist.txt`. For the Qt GUI application, use the Qt project `/tools/qtgui/qtgui.pro`.