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

我正在尝试执行以下操作(我们正在从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本身的源代码。

最佳答案

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

关于c++ - Magick++进行形态学分析,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8980165/

10-10 21:09