raspberry-pi3 - 树莓派 3 代码不工作
问题描述
这是没有产生任何错误但它不能正常工作的编码,我不知道。我正在研究树莓派 3 以进行对象检测。
min_match_count =30
detector = cv2.xfeatures2d.SIFT_create()
FLANN_INDEX_KDTREE=0
flannparam=dict(algorithm=FLANN_INDEX_KDTREE,tree=5)
search=dict(checks=50)
flann=cv2.FlannBasedMatcher(flannparam,search)
trainimg=cv2.imread('/home/pi/Downloads/img1.jpg',0)
trainkp,traindecs=detector.detectAndCompute(trainimg,None)
cam=PiCamera()
cam.resolution=(480,480)
cam.framerate = 40
r_cap =PiRGBArray(cam)
for frm in cam.capture_continuous(r_cap,format = 'bgr', use_video_port = True):
QueImg = frm.array
gry=cv2.cvtColor(QueImg,cv2.COLOR_BGR2GRAY)
quekp,quedecs=detector.detectAndCompute(gry,None)
matches= flann.knnMatch(quedecs,traindecs,k=2)
goodmatch=[]
for (m,n) in matches:
print('after whi')
if(m.distance<0.75*n.distance):
goodmatch.append(m)
if(len(goodmatch)>min_match_count):
tp={}
qp={}
for m in goodmatch:
tp.append(trainkp[m.trainIdx].pt)
qp.append(quekp[m.queIdx].pt)
tp,qp=np.float32((tp,qp))
H,status=cv2.findHomography(tp,qp,cv2.RANSAC,3.0)
h,w=trainimg.shape
trainingborder=np.float32([[[0,0],[0,h-1],[w-1,h-1],[0,h-1]]])
queborder=cv2.perspectiveTransform(trainingborder,H)
cv2.polylines(QueImg,[np.int32(queborder)],True,(0,255,0),5)
else:
print('Not enough matches - %d/%d'%(len(goodmatch),min_match_count))
cv2.imshow('result',QueImg)
r_cap.truncate(0)
cam.release()
cv2.destroyAllWindows()
任何资源都非常感谢提前谢谢
解决方案
推荐阅读
- javascript - 如何将 json 数据从 d3.js 发送到烧瓶服务器?
- asterisk - Stasis 应用程序未激活 - 拨打分机时出现星号错误
- c++ - 多维数组逻辑
- typescript - Typescript:未绑定类型依赖于另一个泛型的泛型类
- javascript - Reactjs - 向减速器发送调度问题?
- azure-cosmosdb - 在 Azure Powershell 中使用 Add-AzMetricAlertRuleV2 时在哪里可以找到条件值?
- angular - 错误类型错误:无法读取未定义的属性“sortChange”,显示此错误?
- javascript - 使用 highcharts 时 React 属性被覆盖?
- arrays - 在 vuex 中生成数组
- sql - AWS Athena:不支持的相关子查询类型,但它适用于 Mysql 和其他风格