我正在尝试使用我正在编写的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本身的源代码。
发布于 2012-01-24 11:52:52
看起来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
发布于 2013-05-04 06:35:59
zsalzbank你给出的响应的一部分是不正确的“(这意味着你不能再使用Magick++类)
Magick++和MagickCore的应用程序接口被设计为相互交互。
你可以像这样转换...
MagickCore::Image* img_core = img->image();https://stackoverflow.com/questions/8980165
复制相似问题