Open buddyhs opened 5 years ago
Hey First of all, thank you for your interest in my work. Well this project was developed using Nsight Eclipse Edition IDE provided by Nvidia on Linux when installing CUDA. Hence, i didn't upload any makefile script. you can build your own makefile here are all the needed lib dependencies : -lGL -lSDL2 -lglut -lGLU -lGLEW -lX11 -lfreeimage -lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_video Or use any other IDE as long as you know how to link your libs and NVCC compiler
Thanks for your response. I will take your advice and have a try, thank you very much!
No problem, please if you have more questions please ask me? more the algorithm is presented in our paper : A.Saouli M.babahenini High Performance Volumetric Modeling from Silhouette: GPU-Image-Based Visual Hull
cmake_minimum_required(VERSION 2.8 FATAL_ERROR) project(opengl)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") SET(CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS};-gencode arch=compute_61,code=sm_61;-std=c++11;)
set(OpenCV_DIR "/home/sinkdream/Softwares/Opencv3.4.4/opencv-3.4.4/build") find_package(OpenCV REQUIRED) if (OPENCV_FOUND) include_directories(${OpenCV_INCLUDE_DIRS}) add_definitions(-DENABLE_OPENCV) list(APPEND LINK_LIB_LIST ${OpenCV_LIBS}) endif (OPENCV_FOUND)
find_package(Eigen3 REQUIRED) find_package(PkgConfig REQUIRED) FIND_PACKAGE(CUDA REQUIRED)
include_directories(Camera) include_directories(Geometry) include_directories(Input) include_directories(PixelBuffer) include_directories(shaders) include_directories(Texture) include_directories(Transforms) include_directories(Silhouettes) include_directories(volume) include_directories(Window) include_directories(cudaKernel) include_directories(./) set(SOURCE_FILES
Camera/vCamera.cpp
Geometry/Mesh.cpp
Input/input.cpp
PixelBuffer/PixelBuffer.cpp
shaders/Shader.cpp
Silhouettes/frame.cpp
Silhouettes/ImageDataArrays.cpp
Texture/TextureGL.cpp
Transforms/transform.cpp
volume/volume.cpp
Window/Fps.cpp
Window/Display.cpp
#cudaKernel/Findsilhouette.cu
#cudaKernel/render.cu
) add_library(SRC_LIBS STATIC ${SOURCE_FILES})
CUDA_ADD_EXECUTABLE(opengl main.cpp cudaKernel/Findsilhouette.cu cudaKernel/render.cu) target_link_libraries(opengl ${OpenCV_LIBS} ${CUDA_LIBRARIES} SRC_LIBS -lGL -lglut -lfreeimage -lX11 -lGLEW -lGLU -lSDL2)
hello, Thank you for your help. Now I can run this program by using a makefile script.Now I will read your paper and know more details about your program.If I have any question, I also hope get your help.Thanks very much. this is my cmakelists. If any one other need this, they can use my script
Can you give me the test sets of dancing woman? I want to run the dynamic scene. Thanks.
Hey, thank you for the makefile script, you can upload it in the project by doing a pull request. for the dancer data set please check this: http://4drepository.inrialpes.fr/public/viewgroup/10
you can find the dancer here along with other datasets. However, you need to do some adjustment to the code. since some of these datasets provide only silhouette images or provide background images (for background subtraction). In fact, i have a stand-alone version of this code that runs on real-time captured dataset like the dancer. i will upload it this weekend as soon as possible
hello, I had some trouble and I think maybe need your help. #########function########### float resolution = pow(0.014928/(float)volumesize,1.0/3.0); this->_data = new float4[volumesize]; int index = 0; for(int i = 0; i < x; i++) { for(int k = 0; k < z; k++) { for(int j = 0; j < y; j++) { if(index > volumesize) break; this->_data[index].x = -0.13066 + i resolution; this->_data[index].y = -0.13066 + j resolution; this->_data[index].z = -0.74832 + k * resolution; this->_data[index].w = 1.0; index++; } } } #########function########### I don't know how to calculate these parameters(eg:0.014928、-0.13066). If I use my own data sets, I can't display reconstruction object.
Hey. this is parameters that depend on the dataset. for instance, if you have ur own data set. u can find the bounding box according to the camera's position and orientation along with the resolution. In fact, for the x and y, you chose. the furthest and the nearest camera according to this axis for the z you have to see where the cameras are looking. One easy way is to use a Multi-view stereo method to reconstruct a coarse point cloud than use a third party software like Meshlab to display these points and compute the bounding box and resolution for you.
Hello Saouli ,If I have the bounding box x is betwween (0,14000), y is (0 ,15000),and z is (0, 4000),my pics are 2160*1920,how can I caculate the resolution and parameters(eg:0.014928、-0.13066). Hope for your reply , thank you !
@zhixiongzuo Hello, go to volume.cpp there is code under #ifdefine other that code is made for arbitry scene captured under 80 cm you can change resolution from 800/x to 15000/x
@HelliceSaouli Thans you for your timely reply, I will try it . thanks again.
Hello, Thank you for your great work first. I want to use you program, but I dont find a cmakelist.txt, is there an other way to run these project?Thank you!