2

私が書いている 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 自体の単なるソース コードであるかどうかはわかりません。

4

2 に答える 2

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

于 2012-01-24T03:52:51.610 に答える
1

あなたが与えた応答の zsalzbank 部分は正しくありません "(これは、Magick++ クラスをもう使用できないことを意味します)"

Magick++ および MagickCore API は、相互に対話するように設計されています。

あなたはそのように変換することができます...

MagickCore::Image* img_core = img->image();
于 2013-05-03T22:35:59.177 に答える