【发布时间】:2018-09-28 18:20:15
【问题描述】:
我在检测白棋子时遇到了麻烦。这有点奇怪,因为它每隔一秒检测一次白棋子。如果我下未检测到的棋子,它就会被检测到。
这就是我在 Stackoverflow 中询问的原因,因为我找不到任何帮助或无法向自己解释。
一般信息: 我在 Lichess 玩所有默认设置和样式。我的白色典当图片也是一个透明的白色 png 文件(50px x 50px)。 阈值为 0.6,因为我得到了最好的结果。如果我减少它检测到的白色棋子的数量更少,如果我增加它检测黑色棋子的数量。
# Standard settings
img_rgb = cv2.cvtColor(original_img,cv2.COLOR_BGR2RGB)
img_gray = cv2.cvtColor(img_rgb,cv2.COLOR_BGR2GRAY)
# White Pawn Template
pawn_white_template = cv2.imread("chess_pieces_template/pawn_white.png",0)
w_pawn_white, h_pawn_white = pawn_white_template.shape[::-1]
res_pawn_white = cv2.matchTemplate(img_gray,pawn_white_template,cv2.TM_CCOEFF_NORMED)
threshhold = 0.6
loc = np.where(res_pawn_white >= threshhold)
for pt in zip(*loc[::-1]):
cv2.rectangle(img_rgb,pt,(pt[0]+w_pawn_white, pt[1]+h_pawn_white),(0,255,255),1)
cv2.imshow('detected',img_rgb)
Picture of the result detected Window
我希望你们能帮助我。如果您需要任何额外的信息,请询问我。
最好的问候
托比亚斯
【问题讨论】:
-
请发布示例图片。
-
@AlexanderReynolds 好的
-
我遇到了和你完全相同的问题(字面意思是一样的;国际象棋而不是检测棋子,只显示黑色方块中的棋子)。你是怎么解决这个问题的?
标签: python python-3.x opencv object-detection chess