在多个参数上应用 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