2010-10-28 57 views
1

我想弄清楚如何使用Tesseract输出hOCR。文档是有限的,所以我正在调查代码。我发现这个在main()函数:C++程序片段:这是干什么的?

bool output_hocr = tessedit_create_hocr; 
outfile = argv[2]; 
outfile += output_hocr ? ".html" : tessedit_create_boxfile ? ".box" : ".txt"; 

为超正方体的典型命令是这样的:tesseract input.tif output_file.txt(输出文件将与在本例中另一个的.txt追加)。 main()的签名是int main(int argc, char **argv)

代码片段究竟在干什么?

+3

您需要选择一种语言;它不可能都是3! – 2010-10-28 21:18:01

+1

这不是全部3.标题建议是C.我标记它C++和C#希望知道这些语言*的人可能*了解片段。 :) – StackOverflowNewbie 2010-10-28 21:19:24

+2

这不是C! (没有'bool'类型;不能添加字符串)。请只标记相关标签... – 2010-10-28 21:20:24

回答

4

它正在生成输出文件名。

bool output_hocr = tessedit_create_hocr; 

将tessedit_create_hocr标志保存在本地作用域变量中。

outfile = argv[2]; 

使用基本文件名从命令行初始化outfile变量。像“Scann0000.tif”。

outfile += output_hocr ? ".html" : tessedit_create_boxfile ? ".box" : ".txt"; 

追加基于标志适当延长。可以重写为

if(ouput_hocr) 
    outfile += ".html"; 
else if(tessedit_create_boxfile) 
    outfile += ".box"; 
else 
    outfile += ".txt"; 
0

它从第二个命令行参数(在您的示例中为output_file.txt)取一个基本文件名,然后使用三元运算符选择扩展名。

如果output_hocr, “html的”

否则,如果tessedit_create, “.box的”

否则, “.TXT”

注意,这是C++。

0

如果output_hocr变量为真,它会将“.html”附加到outfile

如果它是假,它会检查tessedit_create_boxfile如果它是真的,它将“.box”附加到outfile,否则它会附加“.txt”。

0

此代码只是基于tessedit_create_hocr的值决定给出outfile的文件扩展名(在给定代码片段的情况下,如何或在何处初始化此变量尚不清楚)。

如果该值为true,程序将命名输出文件“.html”。否则,它将是“.box”或“.txt”,具体取决于tessedit_create_boxfile的值(它也不清楚它在哪里初始化)。