公开简历:根据母牛的身型识别母牛

问题描述

我想根据母牛的体型来识别它。我正在尝试使用模板匹配,因为我可以收集数据并且相机和奶牛的位置相当稳定。但是结果并不理想,因为匹配也包括背景。母牛的例子如下所示:

cow

背景或多或少是静态的:

Background

我尝试了简单的减法,但是结果很糟糕,我认为这是因为背景具有相似的像素值。我得到的减法示例输出为:

Example

为简单起见,我想继续使用模板匹配进行识别。我使用下面的代码获得了好的结果,该代码没有进行预处理或过滤。我相信有办法可以改善我的结果。我尝试了不同类型的阈值处理,但是并没有太大改善结果,我再次认为这就是问题所在。

import cv2
import os
import numpy as np
cap = cv2.VideoCapture('Cow data/cow5/cow5.mp4')

while (cap.isOpened()):
      ret,frame = cap.read()
      img_gray = cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)

template = cv2.imread('Cow data/cow5/Cow5.jpg',0)
w,h = template.shape[::-1]

threshold = 0.7
loc = np.where(res >= threshold) #or res1 >= threshold)# or res2>= threshold)## or res3>= threshold)
for pt in zip(*loc[::-1]):
    cv2.rectangle(frame,pt,(pt[0] + w,pt[1] + h),(0,255,255),25)

cv2.imshow('Detected',frame)
cv2.imshow('Other',img_gray)

if cv2.waitKey(1) & 0xFF == ord('c'):
    cv2.imwrite('Saved cows/Cow1/Cow1_extra'+str(save)+'.jpg',frame)
    save+=1

if cv2.waitKey(1) & 0xFF == ord('q'):
    break

cv2.waitKey(0)
cap.release()
cv2.destroyAllWindows()

我想知道隔离母牛的最佳方法是什么。我尝试过抓取,但效果不佳,而且速度很慢。改善结果的最佳方法是什么?我应该进行哪种预处理?

我真的是图像处理的新手,我想避免使用更复杂的图像处理,例如使用surf进行特征提取等。

任何建议将不胜感激!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)