我在github上找到一个处理格式的程序将obj文件处理成水密格式(不了解这个无所谓)
很简单,直接运行其中的 sh demo.sh可以成功生成示例。
现在我想批量处理我的数据集,我的数据放在一个个文件夹下,求一个可以循环运行demo处理的程序处理我的数据集。
链接 https://github.com/hjwdzh/Manifold (示例可以直接运行)
(直接在demo.sh文件里写循环可以么?遍历我的数据集文件夹?我的数据名称都是统一的)
能提供有效思路或详细程序的直接采纳不含糊(应该难不住程序猿吧?)
将这个脚本保存为run.py
和manifold
放在一块,然后运行python run.py
理论上是可行的
import os
input_path = ''
# ./manifold ../examples/input.obj ../examples/manifold.obj
for root, dirs, files in os.walk(input_path):
for file in files:
if not file.endswith('.obj'):
continue
input_file = os.path.join(root, file)
output_file = os.path.join(root, os.path.splitext(file)[0] + '.out.obj')
os.system(f"./manifold {input_file} {output_file}")
#!/bin/sh
folder="/home"
#"/home替换为一万多个文件夹所在的目录"
mkdir build
cd build
cmake ..
make
for direcs in ${folder}/*
do
#a=$(ls "${direcs}")
#echo "${a}"
for file in "${direcs}"/*.obj
do
#echo "${file}"
tempname=${file##*/}
./manifold ${file} "${file%/*}"/"simplified_${tempname%.*}".obj
#./simplify -i ../examples/manifold.obj -o ../examples/simplified_manifold.obj -c 1e-2 -f 10000 -r 0.2
echo ok "${file%/*}"/"simplified_${tempname%.*}".obj
done
done
cd ..
发现写错了,修改了一下
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!你这个用一条命令就搞定了。
find parent/path/to/objs -iname "*.obj" -exec sh -c './manifold $0 ${0%.*}-out.obj' {} \;