【问题标题】:Get x,y coordinated for an area not covered by text为文本未覆盖的区域获取 x,y 坐标
【发布时间】:2014-03-23 07:29:41
【问题描述】:

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

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

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

谁能帮助我如何迭代图像的像素并根据图像中像素的位置(行和列)来计算我正在寻找的坐标?

【问题讨论】:

  • 我从未使用过您所指的 API,但是查看他们的(稀疏)在线文档,如果您指的是 com.qualcomm.vuforia.Image,我想您会得到getPixels() 的原始图像数据然后完全按照您的描述进行。
  • 现在我有原始图像数据和我需要搜索的特定区域。然后我将如何搜索这个空间并获得坐标?

标签: java android bitmap qcar-sdk


【解决方案1】:

在渲染器原生函数中使用此代码。

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

【讨论】:

    猜你喜欢
    • 2015-05-23
    • 1970-01-01
    • 2021-07-10
    • 2012-09-17
    • 1970-01-01
    • 2010-12-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多