【问题标题】:Command loop for processing on a directory of images用于处理图像目录的命令循环
【发布时间】:2013-08-19 23:43:41
【问题描述】:

我有一个名为 GPU Debayer 的程序,它使用以下命令行代码转换图像:

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

我之前处理的是文件名相同的图像文件夹,除了末端编号为 0-39。因此,我在 cmd 提示符下对这样的文件夹进行了 debayering。

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 但是,正如我所说,其中有一些。即 120 张图片,40 张名为“filename0000 - filename0039”,40 张名为“filename25_0000 - filename25_0039”,40 张名为“filename37_0000 - filename37_0039”。

有没有一种方法或循环可以用一个脚本对所有这些图像进行 debayer 处理?我的机器上有 imagemagick。如果有人熟悉 GPU Debayer,这就是我正在使用的工具。好像有某种重复功能吧?http://www.fastcompression.com/products/debayer/debayer.htm

感谢您的任何想法!

【问题讨论】:

    标签: image loops image-processing cmd converter


    【解决方案1】:

    我对那个特定程序并不真正熟悉,但我建议以下可能完成该任务(在批处理文件中):

    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 写一些更好的东西是可能的。

    【讨论】:

    • 非常感谢,您的循环很有帮助,但您让我注意到 forfiles 命令更是如此!我将尝试使用 forfiles 来实现(名称将始终是动态的,但文件类型不会)。我遇到了一些错误,但我会发布另一个关于它们的问题。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-25
    • 1970-01-01
    • 2021-01-16
    • 1970-01-01
    • 2020-09-29
    • 2010-10-29
    相关资源
    最近更新 更多