我正在开始一个新的项目,将涉及采取两个图像和比较图像内部的点的中心。 原作将是一幅有27行15列圆点的图片。 第二张图片将是原版的扭曲版,其中的点已经改变了位置和形状。
为了开始这个项目,我需要在一个数组中存储原始中心。
我做了一个公式,可以找到原稿中每个圆的中心。
X: n = 0..26 [48n+5]
Y: m = 0..14 [48m+5]
作为一个例子,点(2,5)的中心将是
[48(2)+5,48(5)+5]=[101,245]
TLDR:我需要帮助使用下面的公式存储(x,y)coorinates
[X,Y] = [48(n)+5 , 48(m)+5] for n = 0..26, m = 0..14
这是二维阵列的直接方法:
arr = []
for n in range(27):
for m in range(15):
arr.append([48*(n)+5 , 48*(m)+5])
这对于3D阵列也是一样的:
arr = []
for n in range(27):
sub = []
for m in range(15):
sub.append([48*(n)+5 , 48*(m)+5])
arr.append(sub)
对于第二个,您可以访问n
的值,而m
是arr[n][m]
。
同一解决方案的一个衬垫:
arr = [[[48*n+5 , 48*m+5] for m in range(15)] for n in range(27)]
嗨,我不太明白您的问题是什么,但是您可以使用下面的代码,使用嵌套循环,将图像存储在数组或python列表中:centres=[]
对于范围(27)中的i:对于范围(15)中的j:居中。追加([48*(n)+5,48*(m)+5])
但是,如果您需要更多关于图像处理的帮助以及如何将图像转换为numpy数组的帮助,请使用以下链接:https://www.pluralsight.com/guides/importing-image-data-into-numpy-arrays
你可以用一个简单的列表理解来完成你的任务
[(48*(n) + 5, 48*(m) + 5) for n in range(0, 27) for m in range(0, 15)]
这将给出一个元组列表,每个元组代表一个坐标点。