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

问题描述

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

解决方法

我确实建议在处理多维数组时/当您想要操作这些数组时使用 numpy,但是这里有一个 numpy 解决方案和一个没有 numpy 的解决方案。

import numpy as np 

img = np.array([[1,2,3,4,5],[2,5,6],[3,6,7],[4,7,8],[5,8,9]])
print('img:\n',img,'\n')
partOfImage = img[0:3,0:3]
print('partOfImage:\n',partOfImage)

img = [[1,9]]
noNumpy =[[img[i][j] for j in range(0,3)] for i in range(0,3)]

print(noNumpy)
,

问题。因此,您希望找到图像的中心,向左、向左、向下、向右、向右、向右、向上和向左扩展 1 个像素,以从样本中间获得图像。正确的?我没有代码示例,而是概念性注释。

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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...