#轮廓获取得到的是上面图,下面的会有一些干扰项#通过拿到边框的坐标,然后根据宽高的比例进行过滤,我这里根据宽高的差
x, y, w, h = cv.boundingRect(cnts[i])
print(x,y,w,h)
if(abs(w-h)>20):
continue
questionCnts2 = sorted(questionCnts.copy(), key=lambda x: (x[1],x[0]))
if abs(y - 19) < 20:
y = 19
if abs(y - 88) < 20:
y = 88
x, y, w, h = questionCnts2[i]
im = img[y:y + h, x:x + w]
result = cv.matchTemplate(cv.resize(old_img,None,fx=0.8, fy=0.8, interpolation = cv.INTER_CUBIC),tempImg,cv.TM_CCOEFF)
(_, score, _, _) = cv.minMaxLoc(result)
if check_score == 0 or score > check_score:
check_score = score
check_img = fileName
最终效果图
这里可以再完善下通过上一篇获取的棋盘信息进行棋盘保存
- 4855
-
HullQin
掘金·日新计划
JavaScript