문제

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 자체의 소스 코드인지 확실하지 않습니다.

도움이 되었습니까?

해결책

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

다른 팁

zsalzbank에 대해 준 응답 부분이 잘못되었습니다. "(이는 Magick ++ 클래스를 더 이상 사용할 수 없음)"

Magick ++ 및 MagickCore API는 서로 상호 작용하도록 설계되었습니다.

당신은 그렇게 변환 할 수 있습니다 ...

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

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top