【发布时间】:2011-07-05 22:54:59
【问题描述】:
我对 python 还很陌生,但对其他语言有相当多的经验。我想知道是否有人可以提供帮助。
问题 我正在尝试合并两个图像的比较(使用 ImageMagicks compare.exe),然后根据输出做出决定。
我遇到了问题,因为我似乎无法将 compare.exe 的输出提取到我自己的代码中。
在命令行运行我的命令,我得到了所需的差异度量:
C:\usr\local\bin\att>compare -metric AE -fuzz 2000 1.png 2.png diff.png
8772
C:\usr\local\bin\att>_
问题是如果我尝试将其通过管道传输到文本文件:
C:\usr\local\bin\att>compare -metric AE -fuzz 2000 1.png 2.png diff.png > tmp.txt
8772
指标仍显示在控制台上,而不是写入文本文件。
继我使用 python 的唯一成功是延迟输出之后,我仍然无法将其捕获到变量中。
在做:
myOutput=subprocess.Popen("C:\\usr\\local\\bin\\att\\compare.exe -metric AE -fuzz 100 1.png 2.png mask.png", stdout=subprocess.PIPE)
在我调用之前不会在控制台上显示“8772”:
line = myOutput.stdout.readline()
何时将其写入控制台输出,但我的变量将为 NULL。
谁能帮忙解决这个问题,或者任何人都知道为什么会发生这种情况?
干杯,
内森。
【问题讨论】:
标签: python imagemagick