nmoehrle / mvs-texturing

Algorithm to texture 3D reconstructions from multi-view stereo images
Other
931 stars 328 forks source link

hello i got stuck from new issue please help me~ #172

Open kumo-park opened 3 years ago

kumo-park commented 3 years ago

hello nmoehrle thank you for giving answer for my first question. and this is my second question about your great code.

what i am doing is like below to fill unseen faces using vertices color in generate_texture_patches function a. create blank image for an unseen face (mve::FloatImage::Ptr image = mve::FloatImage::create(imgW,imgH,imgC)) b. fill the image with vertex color with interpolation algorithm c. extract patch from that image d. register that patch into a patch list ( TexturePatch::Ptr texture_patch= TexturePatch::create(texture_views->size()+1+i, faces, texcoords, image) texture_patches->push_back(texture_patch) ) e. make a VertexProjectionInfo and then push the info into a list ( VertexProjectionInfo info = {texture_patch_id, projection, {face_id}} vertex_projection_infos->at(vertex_id).push_back(info) ) f. iterate steps from a~e for each unseen face

after these step i got a result like below picture

Screen Shot 2021-06-08 at 1 40 03 PM

picture 1. before filling unseen faces using vertices color

Screen Shot 2021-06-08 at 1 40 36 PM

picture 2. after filling unseen faces

but the problem is sometime there are some error when i run modified your code. below picture 3 is the error.

Screen Shot 2021-06-08 at 1 44 51 PM

picture 3. segfault error in local seen leveling

i found that the error occurs in eigen object in poisson_blend function (sometime it occurs in global seem leveling) and it occurs for my artificial patches not the patches for seen face. so if you have any idea, please share for me

zhixiongzuo commented 2 years ago

The texture patch you generate from unseen vertex color cannot do global/local seam leveling . Actually in most case ,it's meaningless using vertex color with awful result.

kumo-park commented 2 years ago

The texture patch you generate from unseen vertex color cannot do global/local seam leveling . Actually in most case ,it's meaningless using vertex color with awful result.

is there any good method to fill unseen face with a patch?

zhixiongzuo commented 2 years ago

I have no idea.

Ranqing commented 2 years ago

hello nmoehrle thank you for giving answer for my first question. and this is my second question about your great code.

what i am doing is like below to fill unseen faces using vertices color in generate_texture_patches function a. create blank image for an unseen face (mve::FloatImage::Ptr image = mve::FloatImage::create(imgW,imgH,imgC)) b. fill the image with vertex color with interpolation algorithm c. extract patch from that image d. register that patch into a patch list ( TexturePatch::Ptr texture_patch= TexturePatch::create(texture_views->size()+1+i, faces, texcoords, image) texture_patches->push_back(texture_patch) ) e. make a VertexProjectionInfo and then push the info into a list ( VertexProjectionInfo info = {texture_patch_id, projection, {face_id}} vertex_projection_infos->at(vertex_id).push_back(info) ) f. iterate steps from a~e for each unseen face

after these step i got a result like below picture

Screen Shot 2021-06-08 at 1 40 03 PM

picture 1. before filling unseen faces using vertices color

Screen Shot 2021-06-08 at 1 40 36 PM

picture 2. after filling unseen faces but the problem is sometime there are some error when i run modified your code. below picture 3 is the error. Screen Shot 2021-06-08 at 1 44 51 PM picture 3. segfault error in local seen leveling

i found that the error occurs in eigen object in poisson_blend function (sometime it occurs in global seem leveling) and it occurs for my artificial patches not the patches for seen face. so if you have any idea, please share for me

about step b: can you specify the interpolation details?