0

在 textreco 示例中,当检测到文本时,会在其周围绘制一个矩形框。我需要从该框中选择文本未覆盖的任何区域。因此,我需要文本未覆盖但位于此框内的任何区域的正 x,y 坐标。

已经做了什么:我首先得到一个包含文本区域的位图,并且可以获得边界左上角和右下角的 x,y 坐标。

研究完成:根据 API 使用 getMask() 返回表示单词中字母的位掩码的图像。图像中的每个像素由一个字节(8 位值)表示。值 255 表示一个空白区域,即没有被单词的任何字母覆盖的像素。如果一个像素被一个字母覆盖,那么像素值表示该字母在单词中的位置,即第一个字符为 0,第二个字符为 1,第三个字符为 2,以此类推。

任何人都可以帮助我如何迭代图像的像素并根据图像中像素的位置(行和列),能够计算出我正在寻找的坐标吗?

4

1 回答 1

0

在渲染器本机函数中使用此代码。

const unsigned char *pixels = (const unsigned char *)mask->getPixels();

            int xCoord = 0;//gives the x coordinate of the first pixel
            int yCoord = 0;//y coordinate

            for (int row = 0; row < num_rows; ++row)
            {
                for (int column = 0; column < num_cols; ++column)
                {
                    unsigned char byte = pixels[row*num_cols + column]; // Get byte from mask
                    if (byte == 255)
                    {
                        xCoordPadding = row;
                        yCoordPadding = column;

                        break;
                    }
                }
            }
于 2014-04-09T12:37:35.290 回答