我正在试图弄清楚如何使用Tesseract输出hOCR。文档是有限的,所以我正在研究代码。我在main()函数中找到了这个:
bool output_hocr = tessedit_create_hocr;
outfile = argv[2];
outfile += output_hocr ? ".html" : tessedit_create_boxfile ? ".box" : ".txt";
Tesseract的典型命令是:tesseract input.tif output_file.txt
(在此示例中,输出文件将附加另一个.txt)。 main()的签名是int main(int argc, char **argv)
。
代码片段到底在做什么?
答案 0 :(得分: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";
答案 1 :(得分:0)
它从第二个命令行参数(在您的示例中为output_file.txt
)中获取基本文件名,然后使用三元运算符选择扩展名。
如果output_hocr
,“。html”
否则,如果tessedit_create
,“。box”
否则,“。txt”
请注意,这是C ++。
答案 2 :(得分:0)
如果output_hocr
变量为true,则会将“.html”附加到outfile
。
如果为false,则检查tessedit_create_boxfile
是否为真,它会将“.box”附加到outfile
,否则会附加“.txt”。
答案 3 :(得分:0)
这段代码只是根据tessedit_create_hocr的值决定给outfile提供什么文件扩展名(根据提供的代码片段,不清楚这个变量的初始化方式和位置)。
如果值为true,程序将命名输出文件“.html”。否则,它将是“.box”或“.txt”,具体取决于tessedit_create_boxfile的值(它也不清楚初始化的位置)。