python - Python中图像中的对称检测
问题描述
我正在使用一种算法来检测不规则对象中的对称性,我只使用带有 nunmpy 和 matplotlib 的 Python,不可能使用 OpenCv,在我沿着主轴旋转我的对象后,我得到了类似旋转图像的东西
然后我写了一个算法来评估水平和垂直对称性并取两者的平均值:
def 对称性(自我,垫子):
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
由于我想评估对称计数是否每个像素相对于水平轴和垂直轴都有对应的坐标,所以我将坐标四舍五入为整数,问题是如果我用一个圆圈测试我的算法,我期望从中得到完美的对称性,我得到大约 0.5,最大值应该是 1。有人可以建议一个更好的指标来评估这种情况下的对称性或改进我的代码,在您看来,我的解决方案应该有效吗?
解决方案
推荐阅读
- c++ - 如何将 OpenGL 中的东西缩放到实际大小?
- java - Spring Data JPA 乐观锁定与旧版 DB2/400
- python - 我应该为 Python 中的公共装饰方法编写单元测试吗(即@property)
- docker - 如何在 ConfigMap 中指定位于 Kubernetes 上运行的 docker 容器中的目录?
- coldfusion - 使用 resolveurl 的锚链接问题
- java - JMenuItem 操作在单击和使用快捷方式之间有所不同
- python - 如何告诉 pip 在安装时保留最新版本的库?
- kubernetes - GPU 资源限制
- python-3.x - 是否可以使用 selenium 和 python 捕获 websocket 流量?
- r - 保留尾随零和数字类型