Pythonwand:如何读取图像属性/统计信息

2024-09-29 17:18:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试提取图像的统计信息,如“平均值”、“标准差”等。 但是,我在pythonwand文档中找不到任何与之相关的内容。在

从命令行我可以得到这样的统计信息:

convert MyImage.jpg -format '%[standard-deviation], %[mean], %[max], %[min]' info:

或者

^{pr2}$

如何使用wand从python程序中获取这些信息?在


Tags: 命令行文档图像信息format内容convertmean
2条回答

目前,不支持ImageMagick的C-API中的任何统计方法(在histogram和{a3}之外)。幸运的是,wand.api是用来扩展功能的。在

  1. 在MagickWand的文档中找到method you need。在
  2. 使用ctypes实现数据类型/结构(reference header ^{} files
from wand.api import library
import ctypes

class ChannelStatistics(ctypes.Structure):
    _fields_ = [('depth', ctypes.c_size_t),
                ('minima', ctypes.c_double),
                ('maxima', ctypes.c_double),
                ('sum', ctypes.c_double),
                ('sum_squared', ctypes.c_double),
                ('sum_cubed', ctypes.c_double),
                ('sum_fourth_power', ctypes.c_double),
                ('mean', ctypes.c_double),
                ('variance', ctypes.c_double),
                ('standard_deviation', ctypes.c_double),
                ('kurtosis', ctypes.c_double),
                ('skewness', ctypes.c_double)]

library.MagickGetImageChannelStatistics.argtypes = [ctypes.c_void_p]
library.MagickGetImageChannelStatistics.restype = ctypes.POINTER(ChannelStatistics)
  1. 扩展wand.image.Image,并使用新支持的方法。在
^{pr2}$

请按照@emcconville的建议给任何人留言:

  1. imagemagick站点上的文档是针对v7.x的
  2. Wand只适用于imagemagick 6.x
  3. 在IM6.x中,实际上在ChannelStatistics的末尾还有一个字段,称为熵,如果不在ChannelStatistics声明中使用它,那么您的结构将与您返回的内容不匹配,它将包含一堆废话

相关问题 更多 >

    热门问题