首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python中的opencv groupRectangle示例

Python中的opencv groupRectangle示例
EN

Stack Overflow用户
提问于 2014-01-23 16:50:13
回答 3查看 5.7K关注 0票数 2

我想问一下关于groupRectangles函数的问题。

我正在用python编写以下代码-

代码语言:javascript
运行
复制
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
#defining the face
thresh=1
faces = face_cascade.detectMultiScale(gray, 1.3, 5)
print faces
faces_1,weights=cv2.groupRectangles(faces, thresh)

其中,vec是从detectMultiscal步骤返回的recl,1是groupThreshold,eps是0.2

但它在执行时抛出了一个运行时错误。我尝试使用try运行代码,但它仍然抛出相同的错误。

代码语言:javascript
运行
复制
Runtime Error!

Program:C:\Python27\pythonw.exe

This application has requested the Runtime to terminate it in an unusual way.

如果有人能提供一些用python编写的示例grouprectangle代码,这将是非常有帮助的,这样我就可以使我的工作代码具有相同的格式,因为在此代码的文档中,我找不到任何示例。

干杯!

EN

回答 3

Stack Overflow用户

发布于 2014-05-01 17:50:17

我也有同样的问题。我设法让它不会崩溃(但我不知道结果是否准确),方法是将其转换为“列表”:

代码语言:javascript
运行
复制
cv2.groupRectangles(list(rectVec), thresh)
票数 3
EN

Stack Overflow用户

发布于 2014-01-23 17:18:46

关于这两个函数的文档如下:

代码语言:javascript
运行
复制
cv2.CascadeClassifier.detectMultiScale(image[, scaleFactor[, minNeighbors[, flags[, minSize[, maxSize]]]]]) → objects¶

cv2.groupRectangles(rectList, groupThreshold[, eps]) → rectList, weights

这建议使用以下用法:

代码语言:javascript
运行
复制
casc = cv2.CascadeClassifier(filename)
rectVec = casc.detectMultiScale(im)
thresh = 1
rectList, weights = cv2.groupRectangles(rectVec, thresh)  # eps is optional

我刚刚仔细检查了上面的代码是否能为我工作。确保您的OpenCV版本和Python绑定是最新的(我的OpenCV版本是2.4.6.1),并且您的所有输入都具有正确的格式(分类器文件、输入图像)。

票数 0
EN

Stack Overflow用户

发布于 2020-04-09 16:57:11

如果有人还在寻找关于边界框合并的问题。形态学是你需要理解的。注意:不要使用随机颜色来产生随机边界框。除非您想手动完成,否则形态学技术将失败。

https://docs.opencv.org/3.4/db/df6/tutorial_erosion_dilatation.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21303374

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档