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