gpt4 book ai didi

image-segmentation - 使用 Leptonica 进行字符分割

转载 作者:行者123 更新时间:2023-12-01 15:33:28 26 4
gpt4 key购买 nike

我正在尝试弄清楚如何使用 Leptonica 库提供的分段器进行文档分析。我一直在看 pageseg.c,但我不认为我完全理解它:(!

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

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

Pix* page = pixRead("myImage.tif");

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

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

现在是文本 block 中的所有字符还是我使用了错误的分割方法:)?另外,我怎么知道文本 block “数组”何时结束?

提前致谢!

编辑 26/11/2013

对于任何感兴趣的人 - Leptonica Doxygen Documentation - Page Segmentation 是整页分割的一个很好的例子!

最佳答案

字符分割示例:

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);
}

关于image-segmentation - 使用 Leptonica 进行字符分割,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20195028/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com