Python 3.x ImageMagick和Wand之间连接组件的输出不同?

Python 3.x ImageMagick和Wand之间连接组件的输出不同?,python-3.x,imagemagick,wand,connected-components,Python 3.x,Imagemagick,Wand,Connected Components,我正在尝试使用Windows10下的“连接组件”功能获取颜色坐标 Python 3.8.5 ImageMagick 7.0.10-29 Q8 x64 2020-09-05 使用ImageMagick和以下命令,我可以正确获得坐标 convert input.png-定义连接的组件:verbose=true-定义连接的组件:区域阈值=100-连接的组件8 -自动调平:空 对象(id:边界框质心区域平均颜色): 0:284x172+0+0133.5,60.0 26161 srgb(0,0,0)

我正在尝试使用Windows10下的“连接组件”功能获取颜色坐标

  • Python 3.8.5
  • ImageMagick 7.0.10-29 Q8 x64 2020-09-05
使用ImageMagick和以下命令,我可以正确获得坐标

convert input.png-定义连接的组件:verbose=true-定义连接的组件:区域阈值=100-连接的组件8 -自动调平:空 对象(id:边界框质心区域平均颜色): 0:284x172+0+0133.5,60.0 26161 srgb(0,0,0) 2:259x59+14+84 143.0113.0 15281 srgb(255255) 3:259x17+14+144 143.0152.0 4403 srgb(255255) 1:143x21+130+60201.0,70.0 3003 srgb(255255) 当我使用Python3/Wand连接的组件时,我得到了不同的输出

win32上的Python 3.8.5(tags/v3.8.5:580FBB02020年7月20日15:57:54)[MSC v.1924 64位(AMD64)] 有关详细信息,请键入“帮助”、“版权”、“信用证”或“许可证”。 >>>从wand.image导入图像 >>>将图像(filename='input.png')作为img: ... 对象=img.connected_components() ... >>>对于对象中的cc_obj: ... 打印(“{0.\u id}:{0.size}{0.offset}”。格式(cc_obj)) ... 0: (284, 172) (0, 0) 0: (0, 0) (0, 0) 14: (84, 98784247810) (0, 0) 0: (0, 0) (0, 0) >>> 为什么python/Wand的输出不同?如何修复它?提前谢谢

下面是输入图像

下面是输入图像


下面是一个使用Python子进程调用ImageMagick命令行(修剪图像多余背景)的示例:


备选方案是:

import subprocess
cmd = 'convert 0.png -fuzz 30% -trim +repage 0_trim.png'
subprocess.call(cmd, shell=True)


看起来像魔杖里的虫子。应使用0.6.3解决release@emcconville再次感谢你的回答。在这种情况下,您或其他人是否知道获取坐标的另一种Python方法/库?Regard使用Python子进程直接调用ImageMagick。@fmw42非常好,还有一种方法可以直接调用awesome ImageMagick软件。我会调查的。非常感谢您的帮助。
@Ger Cas
请参阅下面我的子流程示例。谢谢您的帮助。我已经尝试了您的示例,其工作原理与直接使用ImageMagick完全相同。只有一个问题与这条线索没有太大关系。如果
convert
命令是multine,那么当我们使用反斜杠
\`
分隔每一行时,它会起作用,但当我在Windows中运行
convert
时,它就不起作用了。我的意思是,在DOS命令行中运行convert。在DOS终端中运行multi-ne
convert
命令的正确方法是什么?ThanksWindows的语法与Unix不同。Windows中的新行和转义符是^。在Windows中,也使用不带\转义符的括号。如果使用Windows.bat,则加倍%到%%。再见。非常感谢您的帮助!!:)
import subprocess
cmd = 'convert 0.png -fuzz 30% -trim +repage 0_trim.png'
subprocess.call(cmd, shell=True)