小编use*_*243的帖子

opencv:检测棋盘角落的最佳方法

背景

所以我正在创建一个识别国际象棋动作的程序.到目前为止,我已经实施了相当多的算法来提供最好的结果.我到目前为止所发现的是,对图像进行无失真(使用无失真),然后应用直方图均衡算法,最后使用goodFeaturesToTrack算法(我发现这比哈里斯角点检测更好)的组合产生相当不错的效果结果.这里的目标是让每个广场的每个角落都有一个点.这样,当我应用canny边缘检测时,我可以处理单个方块.

在此输入图像描述

我考虑过什么

http://www.nandanbanerjee.com/index.php?option=com_content&view=article&id=71:buttercup-chess-robot&catid=78&Itemid=470

总结上面的链接,我们的想法是找到最左上角,最右上角,最左下角和最右下角的点,并将它们之间的距离除以8.从那里你会想出可能的点,并将它们与实际上在板上的点进行比较.如果其中一个点不匹配,只需替换该点.

我也考虑过某种模式,比如查找相邻点之间的距离并将它们存储在列表中.然后我会执行模式操作以找出最可能的距离并使用它来绘制点.

正如你所看到的,这些点在大多数方块上都相当准确(尽管有些随机点不符合我的要求).我的问题是你认为在棋盘上找到所有角落的最佳方法是什么(我对所有想法都持开放态度)你能给我一些详细的描述(足以引导我朝正确的方向或更多如果你选择:)?此外,(这是次要问题)您是否有任何关于如何进行以便最佳识别移动的建议?我正在尝试实现多种方式,并且我将比较方法以获得最佳结果!谢谢.

algorithm opencv

14
推荐指数
1
解决办法
8331
查看次数

Opencv:霍夫线没有显示

所以我试图在棋盘上获得hough线,但算法只能检测到一条线.我正在使用python 2.7和opencv 3.0.这是代码:

def applyHoughLineTransform():
    image1 = cv2.imread('pictures/board1.png',0)
    image2 = cv2.imread('pictures/board2.png',0)
    image3 = cv2.imread('pictures/board3.png')
    image4 = cv2.imread('pictures/board4.png')

    lines1 = cv2.HoughLines(image1,1,math.pi/180.0,5)
    lines2 = cv2.HoughLines(image2,1,math.pi/180.0,5)

    lines1 = lines1[0]
    lines2 = lines2[0]

    for rho,theta in lines1:
        print ('Rho and theta:',rho,theta)
        a = np.cos(theta)
        b = np.sin(theta)
        x0 = a*rho
        y0 = b*rho
        x1 = int(x0 + 1000*(-b))
        y1 = int(y0 + 1000*(a))
        x2 = int(x0 - 1000*(-b))
        y2 = int(y0 - 1000*(a))

        print (x1,y1)
        print (x2,y2)

        cv2.line(image3,(x1,y1),(x2,y2),(0,0,255),2)

    for rho,theta in lines2:
        a = …
Run Code Online (Sandbox Code Playgroud)

python opencv hough-transform opencv3.0

6
推荐指数
2
解决办法
3786
查看次数

将图像转换为灰度时 OpenCV 断言错误

当尝试在 opencv 中将图像转换为灰度时,我收到以下错误消息,可以在此处看到: https: //i.stack.imgur.com/9C3kg.png

这是代码:

import cv2

img = cv2.imread('pictures\chessBoard.png',0)
gray_image = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
Run Code Online (Sandbox Code Playgroud)

这些错误消息非常神秘,尤其是对于 opencv 新手来说。谢谢您的帮助!

python opencv

1
推荐指数
1
解决办法
2345
查看次数

标签 统计

opencv ×3

python ×2

algorithm ×1

hough-transform ×1

opencv3.0 ×1