从以位置为中心的输入图像中提取 3×3 图像段 (x,y)



我想问如何从以位置(x,y)为中心的输入图像中提取n×n图像段,图像格式如下[[num,num,num],[num,numm,num],[num,num,num]........],图像大小约为10 * 10。谢谢!

我真的推荐使用numpy,当使用多维数组/当你想要操作这些数组时,但这里你去,一个numpy解决方案和一个没有numpy的解决方案。

import numpy as np 
img = np.array([[1,2,3,4,5],[2,3,4,5,6],[3,4,5,6,7],[4,5,6,7,8],[5,6,7,8,9]])
print('img:n',img,'n')
partOfImage = img[0:3,0:3]
print('partOfImage:n',partOfImage)
img = [[1,2,3,4,5],[2,3,4,5,6],[3,4,5,6,7],[4,5,6,7,8],[5,6,7,8,9]]
noNumpy =[[img[i][j] for j in range(0,3)] for i in range(0,3)]
print(noNumpy)

问题。如果你想找到图像的中心,向左、左下、下、右下、右上、上、左上扩展1像素,从样本的中间得到图像。正确吗?我没有代码示例,但有一个概念性注释。

固定空间图像通常从左上角0,0开始寻址。由于它们采用偶数像素的方法,几乎不可能找到一个"中间"。找到一个中间像素意味着你需要应用一个百分比,并选择最接近的"整像素"。选择。然后扩展到3x3的尺寸

最新更新