在textreco示例中,当检测到文本时,会在其周围绘制一个矩形框。我需要在此框中选择文本未涵盖的任何区域。因此,我需要任何未被文本覆盖但位于此框内的区域的正x,y坐标。
做了什么: 我首先得到一个包含文本区域的位图,并且可以获得边界左上角和右下角的x,y坐标。
研究完成: 根据API使用getMask()返回表示单词中字母位掩码的图像。图像中的每个像素由一个字节(8位值)表示。 值255表示空白区域,即未被该单词的任何字母覆盖的像素。 如果像素被字母覆盖,则像素值表示 该字母在该单词中的位置,即第一个字符为0, 第二个为1,第三个为2,依此类推。
任何人都可以帮助我如何迭代图像的像素,并根据图像中像素的位置(行和列),能够计算我正在寻找的坐标吗?
答案 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;
}
}
}