我决定改述这个问题。这是问题所在:
我设法通过调用以下命令在我的c ++程序中运行textcleaner.exe: system(“/ usr / local / bin / textcleaner g -e normalize -f 25 -o 10 [infile的路径] [outfile的路径]”);
但现在我收到了错误:
/ usr / local / bin / textcleaner:第389行:convert:未找到命令
/ usr / local / bin / textcleaner:第400行:[::预期的整数表达式
/ usr / local / bin / textcleaner:line 403:convert:command not found
/ usr / local / bin / textcleaner:第417行:[::预期整数表达式
/ usr / local / bin / textcleaner:第423行:[::期望整数表达式
/ usr / local / bin / textcleaner:line 429:convert:command not found
--- FILE /Users/~/Desktop/kimlik/kimlik1.bmp无法读取或有零大小---
那么这里有什么问题?我用正确的路径给出了正确的图像,所以我认为而不是最后一行,问题在于textcleaner.exe中的convert命令。如何在运行textcleaner.exe的同时调用textcleaner.exe和convert.exe,它知道什么命令转换?
答案 0 :(得分:1)
我不建议从C ++应用程序调用外部脚本。您需要担心路径,加载shell环境和外部错误处理。不是很难,但我觉得没必要。我认为,如果你开发一个C ++解决方案,而不是直接与Magick ++集成。请尝试以下方法......
确保您使用Magick ++支持安装了ImageMagick。这通常是默认启用的。
更新Xcode的构建设置以包含Magick ++标记。
A
。返回值应复制在"其他C ++标志"选项。Magick++-config --cxxflags
。返回值应复制在" Other Linker Flags"选项。Xcode项目现在应该支持Magick ++库。
最后,评估Fred的精彩Magick++-config --libs
脚本的来源。您应该能够直接在C ++中模仿他的技术。
例如。该脚本可能会生成以下转换命令。
textcleaner
可以使用像...这样的东西来实现。
convert \( $infile -colorspace gray -type grayscale -contrast-stretch 0 \) \
\( -clone 0 -colorspace gray -negate -lat ${filtersize}x${filtersize}+${offset}% -contrast-stretch 0 \) \
-compose copy_opacity -composite -fill "$bgcolor" -opaque none \
-sharpen 0x1 \ $outfile