Chinaunix首页 | 论坛 | 博客
  • 博客访问: 183534
  • 博文数量: 60
  • 博客积分: 1597
  • 博客等级: 上尉
  • 技术积分: 461
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-20 13:24
文章分类

全部博文(60)

文章存档

2017年(15)

2016年(6)

2015年(37)

2008年(2)

分类: LINUX

2016-01-21 09:55:28

double imageMean(const char *blob, size_t size)
{
    MagickWand * magick_wand = NewMagickWand();

    MagickBooleanType ir =MagickFalse;

    try{
        ir=MagickReadImageBlob(magick_wand,blob,size);
        //ir=MagickReadImage(magick_wand, filename);
    }catch(...){
        DestroyMagickWand(magick_wand);
        return 0;
    }
    if (ir == MagickFalse) {
        DestroyMagickWand(magick_wand);
        return 0;
    }

    ChannelStatistics *channel_statistics;
    channel_statistics = MagickGetImageChannelStatistics(magick_wand);
    double scale = 1.0;
    if(channel_statistics[CompositeChannels].depth < MAGICKCORE_QUANTUM_DEPTH)
        scale=(double) QuantumRange/((size_t) QuantumRange >> ((size_t)
                MAGICKCORE_QUANTUM_DEPTH-channel_statistics[CompositeChannels].depth));
    scale = 1.0 / scale;

    double mean = scale * channel_statistics[CompositeChannels].mean;

    DestroyMagickWand(magick_wand);
    return mean;
}
阅读(1365) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~