2012-01-23 8 views
2

私はMagick ++を使って、私が書いているC++プログラムから形態学を実行しようとしています。私はC++からMorphologyメソッドを使用する方法を見つけることができません。Magickを使った形態学++

私は、次の(私たちはperlのから変換されている)を実行しようとしています:

$q=Image::Magick->new; 
$q->Read("blah.jpg"); 
$q->Morphology(method => 'Close', kernel => 'Diamond:4'); 

は、これはただの魔術++で行うことができませんか?私はこのサイトを発見した

http://www.imagemagick.org/api/MagickCore/morphology_8h.html、 これはImageMagickの自身のちょうどソースコードである場合、私はわかりません。

答えて

2

Magick ++にはMorphologyを実行する能力がないようです。代わりに、MagickCore・ライブラリ・コールは、(あなたはもう魔術++クラスを使用することができないことを意味する)を使用する必要があります。

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); 

それはより複雑であり、それはそこに魔術++のようにハンドリングエラーはありませんが、働く

、MagickCoreライブラリで利用可能なすべてのものを参照してくださいここでご覧になる:http://www.imagemagick.org/api/MagickCore/index.html

1

あなたが与えた応答のzsalzbank部分が間違っている「(あなたはもう魔術++クラスを使用することができないことを意味する)」

Magick ++とMagickCore APIは相互作用するように設計されています。

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

MagickCore::Image* img_core = img->image(); 
関連する問題