【问题标题】:Opencv Cascade classification instead of detectionOpencv级联分类而不是检测
【发布时间】:2019-04-15 04:26:07
【问题描述】:

我已经通过使用来自 opencv 的 Cascade 分类进行对象分类来训练我的分类器。

我有三个类,我有三个 *.xml 文件。

我知道图像的一个区域必须是三个类别之一。

但是,通过使用 opencv,只提供了 detectMultiScale 函数,我必须扫描图像(或 ROI)以找到其中所有可能的对象。

是否有方法可以对一张图像(或 roi)是否匹配指定对象进行分类?

谢谢!

【问题讨论】:

    标签: python c++ opencv haar-classifier


    【解决方案1】:

    根据您的问题,我了解到您想要对图像的三个单独的 ROI 进行分类。您可能希望为定义的 ROI 创建三种作物:

    import cv2
    img = cv2.imread("full_image.png")
    crop_img1 = img[y:y+h, x:x+w]
    #create crop_img2 and crop_img3 analogously
    

    并对三个裁剪图像中的每一个应用一个分类器。

    【讨论】:

    • 值得补充的是,投资回报率并不意味着复制数据。
    • 感谢您的回答,但不是关于如何提取 ROI,而是如何使用 Cascade Haar 分类器来分类 ROI 是否属于某个类。我也会尝试改进我的描述。
    • 是的,我假设您已经知道三个 ROI(即坐标yx 以及每个区域的高度和宽度wh )。我是否从您的评论中正确理解您想知道如何使用内置分类器?
    • 总的来说,我想指出分类检测之间的区别。您要执行的任务是图像的分类(ROI 也可以是图像)。分类是为这样的图片分配一个单一的类别标签。 OpenCV 的detectMultiScale 方法用于检测,即定位图像中零个或多个对象边界框(例如,给定输入图像中的所有人脸)。
    猜你喜欢
    • 2015-04-21
    • 2011-08-30
    • 2014-11-09
    • 2016-11-21
    • 2016-10-26
    • 2012-07-05
    • 2013-10-23
    • 1970-01-01
    • 2018-05-05
    相关资源
    最近更新 更多