2012-01-23 60 views
2

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

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

回答

2

看来,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

1

zsalzbank部分是不正确“(这意味着你不能使用Magick ++类了)”

Magick ++和MagickCore API旨在与其他人互动。

你可以像这样转换...

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