在多个参数上应用 Linux 可执行文件
Apply Linux Executable on multiple argments
我有一个 linux 可执行文件 "segment",它将图像作为输入 inputImage.ppm,将其分割成超像素,输出是另一个图像 outputImage.pnm。
我想将此可执行文件应用到文件夹中的整个图像集(400 张图像),我该怎么做?
我试过这个:
./segment 0.8 100 100 ..pathToInFolder../image%d.ppm ..pathToOutFolder../image%d.pnm
其中前三个参数 (0.8,100,100) 是参数。
顺便说一下,图像以名称 image0、image1、....、image399 存储
你是说你想写一个 makefile 来做这个?你上面给出的例子应该是一个makefile吗?
PARAMS := 0.8 100 100
INPUTDIR := ..pathToInFolder..
OUTPUTDIR := ..pathToOutFolder..
INPUTS := $(wildcard $(INPUTDIR)/image*.ppm)
OUTPUTS := $(patsubst $(INPUTDIR)/image%.ppm,$(OUTPUTDIR)/image%.pnm,$(INPUTS))
.PHONY: all
all: $(OUTPUTS)
$(OUTPUTDIR)/image%.pnm : $(INPUTDIR)/image%.ppm ./segment
./segment $(PARAMS) $< $@
for i in $(seq 0 399); do
./segment 0.8 100 100 ..pathToInFolder../image${i}.ppm ..pathToOutFolder../image${i}.pnm
done
请注意 ${i}
而不是您的 %d
。假设 bash 和标准工具,其中应包含“seq”命令。
试试这个:
for file in /path/To/In/Folder/*
do
/full/path/to/segment 0.8 100 100 $file /path/To/Out/Folder/$file.pnm
done
我有一个 linux 可执行文件 "segment",它将图像作为输入 inputImage.ppm,将其分割成超像素,输出是另一个图像 outputImage.pnm。
我想将此可执行文件应用到文件夹中的整个图像集(400 张图像),我该怎么做?
我试过这个:
./segment 0.8 100 100 ..pathToInFolder../image%d.ppm ..pathToOutFolder../image%d.pnm
其中前三个参数 (0.8,100,100) 是参数。
顺便说一下,图像以名称 image0、image1、....、image399 存储
你是说你想写一个 makefile 来做这个?你上面给出的例子应该是一个makefile吗?
PARAMS := 0.8 100 100
INPUTDIR := ..pathToInFolder..
OUTPUTDIR := ..pathToOutFolder..
INPUTS := $(wildcard $(INPUTDIR)/image*.ppm)
OUTPUTS := $(patsubst $(INPUTDIR)/image%.ppm,$(OUTPUTDIR)/image%.pnm,$(INPUTS))
.PHONY: all
all: $(OUTPUTS)
$(OUTPUTDIR)/image%.pnm : $(INPUTDIR)/image%.ppm ./segment
./segment $(PARAMS) $< $@
for i in $(seq 0 399); do
./segment 0.8 100 100 ..pathToInFolder../image${i}.ppm ..pathToOutFolder../image${i}.pnm
done
请注意 ${i}
而不是您的 %d
。假设 bash 和标准工具,其中应包含“seq”命令。
试试这个:
for file in /path/To/In/Folder/*
do
/full/path/to/segment 0.8 100 100 $file /path/To/Out/Folder/$file.pnm
done