得到x,y协调一个未被文本覆盖的区域

时间:2014-03-23 07:29:41

标签: java android bitmap qcar-sdk

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

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

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

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

1 个答案:

答案 0 :(得分: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;
                    }
                }
            }