当前位置: 首页 > 面试题库 >

使用OpenCV Python提取所有边界框

任宾鸿
2023-03-14
问题内容

我有一幅包含多个边界框的图像。
装订盒中的书

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

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

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

提前非常感谢您。


问题答案:

你去那里:

import cv2

im = cv2.imread('c:/data/ph.jpg')
gray=cv2.cvtColor(im,cv2.COLOR_BGR2GRAY)
contours, hierarchy = cv2.findContours(gray,cv2.RETR_LIST,cv2.CHAIN_APPROX_SIMPLE)[-2:]
idx =0 
for cnt in contours:
    idx += 1
    x,y,w,h = cv2.boundingRect(cnt)
    roi=im[y:y+h,x:x+w]
    cv2.imwrite(str(idx) + '.jpg', roi)
    #cv2.rectangle(im,(x,y),(x+w,y+h),(200,0,0),2)
cv2.imshow('img',im)
cv2.waitKey(0)


 类似资料:
  • 问题内容: 两种方法中的哪一种符合W3C标准?它们在浏览器中的表现均符合预期吗? 边界:无; 边界:0; 问题答案: 两者均有效。 这是你的选择。 我喜欢,因为它更短。我觉得这更容易阅读。您可能会发现更清晰。我们生活在功能强大的CSS后处理器世界中,因此我建议您使用您喜欢的任何东西,然后通过“压缩机”运行它。这里没有值得战斗的圣战。 综上所述,如果您要手写所有的生产CSS,尽管评论中有些抱怨,但我

  • 问题内容: 我有以下CSS: 添加边框半径:5px似乎没有任何作用,我认为这是因为我使用的是边框渐变,我是否有办法完全实现所需的5px边框半径? 问题答案: You cannot use with gradient. Here is another idea where you can rely on multiple background and adjust the : 如果需要透明性,可以考

  • 因此,我训练了一个对象识别神经网络(YOLOv3)来检测以各种倾斜和直线角度拍摄的汽车图片牌照周围的边界框,该网络非常可靠。然而,现在我想利用图像处理从包围它的边界框中提取车牌平行四边形,而无需训练另一个神经网络。示例图像: 我曾尝试使用OpenCV内置函数执行边缘和轮廓检测,如下面的最小代码所示,但仅以这种方式在一小部分图像上成功: 以下是一些结果示例: (最上面一行图像是边缘检测阶段的结果)

  • 问题内容: 假设您具有以下图像: 现在,我想将每个独立字母提取到单个图像中。目前,我已经恢复了轮廓,然后绘制了一个边框,在这种情况下,是针对角色: 之后,我要提取每个框(在本例中为letter )并将其保存到图像文件中。 预期结果: 到目前为止,这是我的代码: 提前致谢。 问题答案: 以下将给您一封信

  • 问题内容: 我写了一个简单的基准测试,以找出在通过按位和计算数组时是否可以消除边界检查。基本上,这就是几乎所有哈希表的作用:它们计算 作为一个指数到的,其中是或派生值。该结果表明,范围检查没有得到消除。 我的基准测试的想法很简单:计算两个值和,保证两个值都是有效的数组索引。 是循环计数器。当它用作数组索引时,将取消边界检查。 将计算为,其中每次迭代中都有一些值更改。当它用作数组索引时,不会消除边界

  • 问题内容: 我怎么知道我可以从对象/界面访问的字段?我尝试过反射,但看来您必须首先知道字段名称。如果我需要了解所有可用字段怎么办? 问题答案: 您可以使用该函数获取类型描述符。从那里,您可以列出存储在界面中的动态值的字段。 例: 输出: 调用的结果是一个值为,其中包含字段名称以及其他内容: 如果还需要这些字段的值,则可以使用获取,然后可以使用或: 输出: 在Go Playground上尝试一下。