【发布时间】:2017-07-20 17:41:22
【问题描述】:
我决定重新表述这个问题。问题来了:
我已经设法在我的 c++ 程序中运行 textcleaner.exe,方法是调用: system("/usr/local/bin/textcleaner g -e normalize -f 25 -o 10 [输入文件路径] [输出文件路径]");
但现在我得到了错误:
/usr/local/bin/textcleaner:第 389 行:转换:找不到命令
/usr/local/bin/textcleaner: 第 400 行: [: : 需要整数表达式
/usr/local/bin/textcleaner:第 403 行:转换:找不到命令
/usr/local/bin/textcleaner: 第 417 行: [: : 预期的整数表达式
/usr/local/bin/textcleaner:第 423 行:[: : 预期的整数表达式
/usr/local/bin/textcleaner:第 429 行:转换:找不到命令
--- 文件 /Users/~/Desktop/kimlik/kimlik1.bmp 不可读或大小为零 ---
那么这里的问题是什么?我给出了正确路径的正确图像,所以我认为问题出在 textcleaner.exe 中的转换命令而不是最后一行。我怎样才能同时调用 textcleaner.exe 和 convert.exe so 在运行 textcleaner.exe 时,它知道 convert 命令是什么?
【问题讨论】:
-
它们是脚本而不是 .exe 文件
-
所以如果你在脚本上使用 chmod u+x textcleaner 你会得到可执行文件。我知道您可以使用 system(textcleaner [parameters] inputfile outputfile) 在 c++ 代码中调用 exec 版本。但是运行它会给出错误: textcleaner: line 389: convert: command not found。我想我也需要以某种方式添加转换可执行文件,但我不知道如何。
-
首先:
convert实用程序不在您的环境PATH中。您需要加载 shell 环境,或使用putenv重建PATH。第二:[字符是一个测试实用程序,不能用作文字字符串。请参阅man [了解更多信息。 -
只是看看我是否理解这一点:在 .bash/profile 中将 convert.exe 的路径添加到我的 PATH 还不够吗?因为我的 PATH 包括 usr/local/bin,convert.exe 与 textcleaner 一起驻留在其中
-
我的脚本是 bash Unix shell 脚本 (.sh) 而不是 Windows 可执行文件 (.exe)。要在 Window 上运行它,您需要一个 Unix 环境,例如 Windows 10 unix 或 Cygwin。也不要将 Windows 转换与 Imagemagick 转换混淆。大部分脚本只是使用 Imagemagick 的 -lat 命令。
标签: xcode image-processing imagemagick ocr