标签: bounding-box

如何在cocos2d中显示CCNode的边界框?

作为我之前关于显示锚点的问题的后续问题,我 CCSprite子类化并更改其绘制方法如下:

[super draw];
ccDrawColor4F(0, 1, 0, 1);
ccDrawCircle(self.anchorPointInPoints, 20, 0, 8, YES);
Run Code Online (Sandbox Code Playgroud)

这非常有效.为了额外的功劳,我添加了以下内容来显示其边界框:

CGRect bb = self.boundingBox;
CGPoint vertices[4] = {
    [self convertToNodeSpace:ccp(bb.origin.x, bb.origin.y)],
    [self convertToNodeSpace:ccp(bb.origin.x + bb.size.width, bb.origin.y)],
    [self convertToNodeSpace:ccp(bb.origin.x + bb.size.width, bb.origin.y + bb.size.height)],
    [self convertToNodeSpace:ccp(bb.origin.x, bb.origin.y + bb.size.height)],
};
ccDrawPoly(vertices, 4, YES);
Run Code Online (Sandbox Code Playgroud)

这也很有用,直到我重新表达一个精灵:

CGPoint oldPosition = [sprite convertToWorldSpace:sprite.position];
[sprite removeFromParentAndCleanup:NO];
[parentSprite addChild:sprite];
sprite.position = [sprite convertToNodeSpace:oldPosition];
Run Code Online (Sandbox Code Playgroud)

精灵现在处于正确的位置,它的锚点在它应该的位置绘制,但是边界框在错误的位置绘制.我究竟做错了什么?

bounding-box cocos2d-iphone

11
推荐指数
1
解决办法
7709
查看次数

使用OpenCV Python提取所有边界框

我有一个包含多个边界框的图像.
边界框中的书籍

我需要提取其中包含边界框的所有内容.到目前为止,从这个网站我得到了这个答案:

y = img[by:by+bh, bx:bx+bw]
cv2.imwrite(string + '.png', y)
Run Code Online (Sandbox Code Playgroud)

然而,它只有一个.我该如何修改代码?我尝试将它放在轮廓的循环中,但它仍然喷出一个图像而不是多个图像.

非常感谢你提前.

python opencv bounding-box extraction

11
推荐指数
2
解决办法
3万
查看次数

计算边界框重叠的百分比,用于图像检测器评估

在大图像中测试物体检测算法时,我们根据为地面实况矩形给出的坐标检查我们检测到的边界框.

根据Pascal VOC挑战,有这样的:

如果预测的边界框与地面实况边界框重叠超过50%,则认为该边界框是正确的,否则边界框被认为是误报检测.多次检测会受到处罚.如果系统预测了几个与单个地面实况边界框重叠的边界框,则只有一个预测被认为是正确的,其他预测被认为是误报.

这意味着我们需要计算重叠的百分比.这是否意味着地面实况框被检测到的边界框覆盖了50%?或者50%的边界框被地面真值箱吸收了?

我已经搜索了但是我没有为此找到一个标准算法 - 这是令人惊讶的,因为我会认为这是计算机视觉中非常常见的东西.(我是新手).我错过了吗?有谁知道这类问题的标准算法是什么?

python bounding-box object-detection computer-vision scikit-image

10
推荐指数
6
解决办法
2万
查看次数

如何使用CSS将图像放入200像素的方框中?

我有一堆图像都适合400px×400px的盒子(也就是说,其中一个尺寸为400px,另一个尺寸较小).我希望能够,使用CSS,但jquery/javascript,如果有必要,将图像适合200px乘200px的盒子,这样图像的两个边缘触摸盒子,并且在另外两个边缘之间有一个间隙盒子.必须保持宽高比.

我的HTML如下:

<div class="small">
    <img src="/images/photos/View.jpg" alt="View" />
</div>
Run Code Online (Sandbox Code Playgroud)

我的CSS是:

div.images div.small
{
    width:200px;
    height:200px;
    line-height:200px;
    text-align:center;
}
div.images div.small img
{
    vertical-align:middle;
    max-width:200px;
    max-height:200px;
}
Run Code Online (Sandbox Code Playgroud)

你可以在这里看到一个样本.

不幸的是,我的风景图像拥抱了盒子的顶部,而我希望它们居中.而且,我不确定依赖max-width/ 的智者max-height.

如何将图像置于这些框中?

javascript css image bounding-box

9
推荐指数
1
解决办法
2万
查看次数

从边界框确定文本坐标a的正确方法是什么?

鉴于调用的结果,提供imagettfbbox()的正确的像素完美点是什么imagettftext(),文本不会超出其边界框?

我正在从边界框中确定基线的宽度/高度和x/y,如下所示:

$box = imagettfbbox($size, $angle, $font, $text);
$boxXCoords = array($box[0], $box[2], $box[4], $box[6]);
$boxYCoords = array($box[1], $box[3], $box[5], $box[7]);
$boxWidth = max($boxXCoords) - min($boxXCoords);
$boxHeight = max($boxYCoords) - min($boxYCoords);
$boxBaseX = abs(min($boxXCoords));
$boxBaseY = abs(min($boxYCoords));
Run Code Online (Sandbox Code Playgroud)

然后,我在边界框尺寸的图像上绘制一个填充矩形:

imagefilledrectangle($image, 0, 0, $boxWidth - 1, $boxHeight - 1, $color);
Run Code Online (Sandbox Code Playgroud)

之后,我画了文字:

imagettftext($image, $size, $angle, $boxBaseX, $boxBaseY, $color, $font, $text);
Run Code Online (Sandbox Code Playgroud)

但是,这会导致文本超出矩形一两个像素.我已经看过几次尝试在PHP的imagettfbbox()文档中解决这个问题,但他们都建议在这里和那里减去一两个像素,这对我来说似乎是一个黑客.这里发生了什么,为什么我们需要捏造数字以使事情正确?

php text gd bounding-box

9
推荐指数
1
解决办法
1894
查看次数

有效地找到2D网格中最大的周围方形

在具有2D网格地图的游戏中,我面临以下情况:

在此输入图像描述

我需要找到围绕玩家位置(红点)的最大边界方块.或者至少最大尺寸边界,因为可能会有更多.注意:方形,而不是矩形.

在这种情况下,很容易看到最大的正方形是8x8:

在此输入图像描述

如果我在地图中添加障碍物,最大的可能性现在是5x5:

在此输入图像描述

我正在寻找一种快速有效的方法来找到包含玩家位置的(或者)最大正方形.

我目前正在做的是一种蛮力:

  • 始终可以使用1x1的方格(玩家位置本身).
  • 然后我尝试所有可能的2*2方格包含播放器,这是4个可能的不同方块,并为每个我做2*2循环,检查所有网格单元是否清晰(不是墙壁或障碍物).
  • 如果可能是2*2的方格,那么我会尝试围绕玩家的所有可能的3*3方格(这是9个不同的方格),并为每个我做3*3循环,以检查是否没有碰撞.
  • 等等,直到尺寸为N*N,没有正方形是可能的.

它的工作原理很简单,但感觉非常低效.显然我在这里做了很多冗余检查,我想知道是否有更聪明/更快的方法来做到这一点.有谁知道有效地做到这一点的算法?

(编辑)重要补充:除了玩家四处移动外,还会动态添加或移动障碍物或墙壁,因此这里的缓存或预先优化很难实现.

algorithm optimization raster bounding-box

9
推荐指数
1
解决办法
1494
查看次数

求包围一组点的边界多边形的面积

我在天空图上有一系列点。我想找到这些点占据的面积。

为此,我需要找到包围这些点的多边形的顶点 - 将这些点转换为等积投影,然后计算出面积。

除了如何计算包围图形上的点的多边形的顶点之外,我还编写了所有代码。做这个的最好方式是什么?

在此输入图像描述

python bounding-box polygons

9
推荐指数
1
解决办法
4750
查看次数

有人能向我解释旋转卡钳吗?

我正在努力计算一组点的最小封闭矩形(任意对齐).

我能够使用格雷厄姆算法计算凸包.

我陷入困境的是下一步.我想过使用旋转卡尺方法,但我似乎无法找到对算法的充分解释.

algorithm geometry bounding-box

8
推荐指数
1
解决办法
6509
查看次数

如何检测一个点是否包含在一个边界rect-opecv&python中

我有一组点[(x0,y0),(x1,y1),..]

并使用该cv2.boundingRect(someContour)函数生成一组边界矩形.每个边界框是一个具有四个坐标的可迭代对象(a,b,c,d).我的问题是:

  1. 这四个数字是什么意思?

  2. 如何检查每个给定点是否包含在边界矩形内?

我知道opencv for C++有'contains'方法,但它不存在python.

python opencv bounding-box

8
推荐指数
2
解决办法
1万
查看次数

着色器中边界卷层次结构的遍历

我正在使用 vulkan 计算着色器开发路径跟踪器。我实现了一个表示边界卷层次结构的树。BVH 的想法是最小化需要执行光线交叉测试的对象数量。


#1 幼稚的实现

我的第一个实现非常快,它将树向下遍历到BVH 树的单个叶子。但是,射线可能会与多个叶子相交。这段代码会导致一些三角形没有被渲染(尽管它们应该)。

int box_index = -1;

for (int i = 0; i < boxes_count; i++) {
    // the first box has no parent, boxes[0].parent is set to -1
    if (boxes[i].parent == box_index) {
        if (intersect_box(boxes[i], ray)) {
            box_index = i;
        }
    }
}

if (box_index > -1) {
    uint a = boxes[box_index].ids_offset;
    uint b = a + boxes[box_index].ids_count;

    for (uint j = a; j < b; j++) { …
Run Code Online (Sandbox Code Playgroud)

raytracing glsl bounding-box compiler-optimization vulkan

8
推荐指数
1
解决办法
768
查看次数