В рамках своей учебы я работаю над инструментом командной строки для вычисления искажений на изображениях. В настоящее время я сталкиваюсь со следующей проблемой: я хочу вызвать команду ImageMagick через system()
. Вывод, который я получаю, следующий:
convert: command not found.
Тем не менее, вызов точно такой же функции непосредственно на терминале работает отлично.
Команда, которую я вызываю,
convert building.jpg -matte -virtual-pixel transparent \
-distort Perspective \
'7,40 4,30 4,124 4,123 85,122 100,123 85,2 100,30' \
building_pers.png
С http://www.imagemagick.org/Usage/distorts/#perspective_projection
Конечно, имя изображения другое, это всего лишь пример:
Мой код следующий :
int main(int argc, const char * argv[]) {
enterPoints();
std::string cmd;
cmd = create_cmd_l1();
cmd += create_cmd_l2();
cmd += create_cmd_l3();
cmd += create_cmd_l4();
system(cmd.c_str());
return 0;
}
Метод enterPoints()
просто собирает контрольные точки, с этой частью проблем нет.
create_cmd-commands
создает 4 строки всей команды ImageMagick. Вызов всех строк по отдельности приводит к одной и той же ошибке:
system(create_cmd_l1().c_str());
system(create_cmd_l2().c_str());
system(create_cmd_l3().c_str());
system(create_cmd_l4().c_str());