我对 python 相当陌生,但对其他语言有相当多的经验。我想知道是否有人可以帮忙。
问题我试图合并两个图像的比较(使用 ImageMagickscompare.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 取得的唯一成功是延迟输出,但我仍然无法将其捕获到变量中。
Doing:
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。
任何人都可以帮忙解决这个问题,或者有人知道为什么会发生这种情况吗?
Cheers,
Nathan.