Python中图像的对称性检测

Python中图像的对称性检测,python,python-3.x,numpy,image-processing,symmetry,Python,Python 3.x,Numpy,Image Processing,Symmetry,我正在使用一种算法来检测不规则对象中的对称性,我只使用Python和NUMMPY和matplotlib,不可能使用OpenCv,当我沿着主轴旋转对象后,我得到类似的结果 然后,我编写了一个算法,用于计算水平对称和垂直对称,并对这两种对称进行平均: def对称性(自身、mat): mat是我的二值图像点的坐标矩阵 coords = np.around(mat) #coordinates are rounded i, j = coords.shape x, y = coor

我正在使用一种算法来检测不规则对象中的对称性,我只使用Python和NUMMPY和matplotlib,不可能使用OpenCv,当我沿着主轴旋转对象后,我得到类似的结果

然后,我编写了一个算法,用于计算水平对称和垂直对称,并对这两种对称进行平均:

def对称性(自身、mat):

mat是我的二值图像点的坐标矩阵

    coords = np.around(mat) #coordinates are rounded 
    i, j = coords.shape
    x, y = coords

    horizontal = 0
    vertical = 0



    for k in range(j):    
        for m in range(k, j):
            if(x[k] == x[m] and y[k] == -y[m]):
                horizontal += 1            
            if((x[k] == -x[m] and y[k] == y[m]):
                vertical += 1

    symmetry = (horizontal + vertical)/ j


    print('The symmetry index is:')
    print(symmetry)

    return
因为我想计算对称性计数,如果每个像素都有一个对应于水平轴和垂直轴的坐标,我将坐标四舍五入为整数,问题是如果我用一个cirlce测试我的算法,我期望从中获得完美的对称性,我得到大约0.5,最大值应该是1。
在这种情况下,是否有人能为评估对称性提出更好的指标,或者改进我的代码?您认为我的解决方案不可行吗?

您能提供一个坐标示例列表吗?圆测试的x和y的顺序是什么?坐标只是旋转后获得的点列表,因为原始坐标乘以变换矩阵,它们是浮点数,这就是为什么我将它们四舍五入,第一行表示x坐标,第二行表示y坐标。猜测您尚未设置水平中心线。您应该找到所有点的中心x。然后沿每行测量左右点相对于x中心的x偏移,并找出它们的差异。然后对垂直中心和从中心线的垂直偏移重复同样的步骤。我不明白,图像的中心在(0,0)看图片