首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Leptonica进行字符分割

用Leptonica进行字符分割
EN

Stack Overflow用户
提问于 2013-11-25 14:01:29
回答 1查看 1.2K关注 0票数 3

我试图弄清楚如何使用Leptonica库提供的分段器进行文档分析。我一直在看第三页,但我想我还没有完全理解它。

如果我将图像作为PIX数据类型加载,是否调用pixGetRegionsBinary()来查找每个符号所在的位置?然后使用文本块掩码分别提取每个符号吗?

如果我正确理解的话,我就会有这样的代码:

代码语言:javascript
复制
Pix* page = pixRead("myImage.tif");

Pix** halftone;
Pix** textline;
Pix** textblock;

if ( pixGetRegionsBinary( page, halftone, textline, textblock, 0 ) )
{
     //..error message
}

现在textblock是所有字符还是我使用了错误的分段方法:)?另外,我如何知道textblock“数组”何时结束?

提前谢谢!!

编辑26/11/2013

对于任何感兴趣的人- Leptonica DO2文档.页面分割是一个很好的例子,完整的页面分割!

EN

回答 1

Stack Overflow用户

发布于 2016-09-05 04:40:31

字符切分示例:

代码语言:javascript
复制
void CharacterSegmentation(string filename) {
   PIX * image = pixRead(filename.c_str());
   PIX * binaryImage = pixConvertTo1(image , 250);
   Boxa* connectedBox = pixConnCompBB(binaryImage, 4); 
   for (int i = 0; i < connectedBoxes ->n; i++) {
      BOX* box = boxaGetBox(connectedBox , i, L_CLONE);
      fprintf(stdout, "Box[%d]: x=%d, y=%d, w=%d, h=%d\n", i, box->x, box->y, box->w, box->h);
      BOX* boxd = boxCreate(box->x, box->y, box->w, box->h);
      SaveCharacterImage(image, boxd);
      boxDestroy(&boxd);  
      boxDestroy(&binaryImage);
   }
   pixDestroy(&image);
   pixDestroy(&binaryImage);    
} 

void SaveCharacterImage(PIX* image, BOX* rectangle) {
   PIX* pixd = pixClipRectangle(pixa, boxd, NULL);
   string s = to_string(i) + ".png";
   pixWrite(s.c_str(), pixd, 1);
   pixDestroy(&pixd); 
}
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20195028

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档