2012-01-23 64 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();