2013-08-17 39 views
0

我有一个名为GPU去拜耳程序转换使用此命令行代码的图像:命令循环中进行处理的图像的目录

DebayerGPU.exe -demosaic DFPD_R -CPU -pattern GRBG -i inputpic.pgm -o outputpic.ppm 

我以前处理其文件名是相同的图像的文件夹除了结尾编号为0-39。因此,我在cmd提示符下打开了像这样的文件夹。

for %a in (0 1 2 3 4 5 6 7 8 9 10 11 1 
2 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 
39) do DebayerGPU.exe -demosaic DFPD_R -CPU -pattern GRBG -i single%a.pgm -o si 
ngle%a.ppm 

现在,我需要处理一个文件夹持有多套这些图像现在标有filename0000的 - filename0039但是,也有,就像我说的,其中的几个。即,名称为“文件名0000-文件名0039”的40个图像40,名为“文件名25_0000-文件名25_0039”的40个,以及名为“文件名37_0000-文件名37_0039”的40个。

有没有任何方式或循环来消除所有这些图像与一个脚本?我的机器上有imagemagick。如果有人熟悉GPU Debayer,这是我正在使用的工具。它似乎有某种重复功能可能? http://www.fastcompression.com/products/debayer/debayer.htm

感谢您的任何想法!

回答

0

我真的没有与该特定程序的任何真正熟悉,但我建议以下可以完成这项任务(在一个批处理文件):

setlocal 
for %%i in (0,1,39) do (
    DebayerGPU.exe -demosaic DFPD_R -CPU -pattern GRBG -i filename00%%~i.pgm -o filename00%%~i.ppm 
) 
for %%i in (25 37) do (
    for %%~j in (0,1,39) do (
    DebayerGPU.exe -demosaic DFPD_R -CPU -pattern GRBG -i filename%%~i_00%%~j.pgm -o filename%%~i_00%%~j.ppm 
    ) 
) 

只需复制并粘贴此,它基本上可以自动化你正在做的过程。最后一个循环用数字和下划线表示任何一个。请记住:我不知道有关批处理的很多内容,而且我不知道如何通过多个命名文件夹递归。另外,使用forfiles可能会写得更好一些。

+0

非常感谢,您的循环很有帮助,但是您将我的注意力引向forfiles命令更是如此!我将尝试使用forfiles(名称将始终是动态的,但文件类型不会)。我收到了一些错误,但我只会发布关于它们的另一个问题。谢谢! – Acoustic77