【问题标题】:morphology using Magick++使用 Magick++ 的形态学
【发布时间】:2012-02-17 07:20:49
【问题描述】:

我正在尝试使用我正在编写的 c++ 程序中的 Magick++ 执行形态学。我找不到如何使用 c++ 中的 Morphology 方法。

我正在尝试执行以下操作(我们正在从 perl 转换):

$q=Image::Magick->new;
$q->Read("blah.jpg");
$q->Morphology(method => 'Close', kernel => 'Diamond:4');

这不能只用 Magick++ 完成吗?

我找到了这个网站, http://www.imagemagick.org/api/MagickCore/morphology_8h.html , 但我不确定这是否只是 ImageMagick 本身的源代码。

【问题讨论】:

    标签: c++ perl image-processing imagemagick magick++


    【解决方案1】:

    Magick++ 似乎没有做形态学的能力。相反,必须使用 MagickCore 库调用(这意味着您不能再使用 Magick++ 类):

    ExceptionInfo *e;
    ImageInfo *ii;
    Image *i;
    
    e = AcquireExceptionInfo();
    ii = CloneImageInfo((ImageInfo *) NULL);
    
    strcpy(ii->filename, vm["input"].as<string>().c_str());
    i = ReadImage(ii, e);
    i = MorphologyImage(i, CloseMorphology, 3, AcquireKernelInfo("Diamond:4"), e);
    

    它更复杂,没有像Magick++那样的任何错误处理,但它可以工作。

    要查看 MagickCore 库中可用的所有内容,请查看此处:http://www.imagemagick.org/api/MagickCore/index.html

    【讨论】:

      【解决方案2】:

      zsalzbank 您给出的部分响应不正确“(这意味着您不能再使用 Magick++ 类)”

      Magick++ 和 MagickCore API 旨在相互交互。

      你可以这样转换...

      MagickCore::Image* img_core = img->image();
      

      【讨论】:

        猜你喜欢
        • 2020-07-31
        • 2014-10-29
        • 1970-01-01
        • 2019-07-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-05-20
        • 1970-01-01
        相关资源
        最近更新 更多