如何将Fred的Magick Script TextCleaner与XCode Project链接起来

时间:2017-03-01 11:51:36

标签: xcode image-processing imagemagick ocr

我决定改述这个问题。这是问题所在:

我设法通过调用以下命令在我的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,它知道什么命令转换?

1 个答案:

答案 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

output.png