Python OpenCV返回图像中的对象列表



Python OpenCV返回图像中对象列表

我正在尝试检测在图像中发现的动物,然后返回它们的名称列表。

例如图像object.png有狮子、长颈鹿和斑马。

我希望程序返回一个列表'狮子','长颈鹿','斑马'作为在图像中发现的动物。

当前代码返回一个空列表。

你能帮我找出问题在哪里吗?

使用openCV来检测动物的合适分类器是什么?

提前感谢!


import cv2
src_img = cv2.imread('object.png')
gray_img = cv2.cvtColor(src_img, cv2.COLOR_BGR2GRAY)
c_classifier = cv2.CascadeClassifier(f"{cv2.data.haarcascades}haarcascade_frontalcatface.xml")
d_objects = c_classifier.detectMultiScale(gray_img, minSize=(50, 50))
print(d_objects)

我相信"haarcascade_frontalcatface.xml"是用来探测猫的,而不是一般的动物。更多信息请参考此处

还可以使用haarcascade分类器来查找边界框。从图像中找到对象(动物)后,您应该裁剪图像,使用不同的分类器来检测子图像中的动物。或者首先使用不同的分类器,如果你只需要图像中有哪些动物的信息,我会这样做。

最新更新