Python中图像的对称性检测
我正在使用一种算法来检测不规则对象中的对称性,我只使用Python和NUMMPY和matplotlib,不可能使用OpenCv,当我沿着主轴旋转对象后,我得到类似的结果 然后,我编写了一个算法,用于计算水平对称和垂直对称,并对这两种对称进行平均: def对称性(自身、mat): mat是我的二值图像点的坐标矩阵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
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)看图片