imagemagick — конвертирует команду image magick в код magick ++ c ++

Я работаю над проектом предварительной обработки изображений в моем университете и использовал скрипт Magick для очистки фона изображения. Теперь я хочу получить тот же вывод через Magick ++ (API C ++ для imageMagick).

Команда ImageMagick: «convert -respect-круглые скобки (INPUT_IMAGE.jpg -colorspace grey -contrast-stretch 0) (-clone 0 -colorspace grey -negate -lat 25×25 + 30% -contrast-stretch 0) -compose copy_opacity -composite -fill white -opaque нет -альфа от-задний белый OUTPUT_IMAGE.jpg «

Я попытался преобразовать этот код в код Magick ++ и потерпел неудачу в позициях «-lat», «-contrast-stretch» и «-compose».

Это мой код на C ++:

Image backgroungImage;
backgroungImage.read("INPUT_IMAGE.jpg");
backgroungImage.colorSpace(GRAYColorspace);
backgroungImage.type(GrayscaleType);
backgroungImage.contrastStretch(0, QuantumRange);
backgroungImage.write("Partial_output.jpg");

Если у кого-то есть идея или лучшее решение, пожалуйста, дайте мне знать.
Спасибо заранее.

1

Решение

Вы на правильном пути с -contrast-stretch, За -latПомните, что это аббревиатура от «Local Adaptive Threshold». Таким образом, код C ++ будет выглядеть так …

Image backgroundImage;
// INPUT_IMAGE.jpg
backgroundImage.read("INPUT_IMAGE.jpg");
// -colorspace gray
backgroundImage.colorSpace(GRAYColorspace);
// -contrast-stretch 0
backgroundImage.contrastStretch(0, QuantumRange);
// -clone 0
Image foregroundImage(backgroundImage);
// -negate
foregroundImage.negate();
// -lat 25x25+30%
foregroundImage.adaptiveThreshold(25, 25, QuantumRange * 0.30);
// -contrast-stretch 0
backgroundImage.contrastStretch(0, QuantumRange);
// -compose copy_opacity -composite
backgroundImage.composite(foregroundImage, 0, 0, CopyAlphaCompositeOp);
// -fill white -opaque none
backgroundImage.opaque(Color("NONE"), Color("WHITE"));
// -alpha off
backgroundImage.alpha(false);
// -background white
backgroundImage.backgroundColor(Color("WHITE"));
// OUTPUT_IMAGE.jpg
backgroundImage.write("OUTPUT_IMAGE.jpg");

Надеюсь, это поможет!

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]