四个矩阵的切片数组

时间:2018-12-23 10:29:34

标签: python numpy numpy-slicing

我有一个由4张图片组成的数组,每张图片都可以说是NxM(所有图片共享相同的大小)

(顺便说一下,我正在实现一个Harris Corner检测器。)

现在我做了一个矩阵M = ([Ix^2, Ixy],[Ixy, Iy^2]).reshape(2,2) 现在我想计算我的回应。 通常是Det(RM) - k*(trace(RM)**2) RM是2x2矩阵,矩阵中的每个点都来自M中每个图像的相同坐标位置。

如何分割M来创建RM? 换句话说,我如何对矩阵M进行切片以为NxM图像中的每个像素创建一个较小的矩阵2x2 RM? 例如,第一个RM矩阵应该是一个2x2矩阵,该矩阵从M中的每个图像取0,0坐标。

1 个答案:

答案 0 :(得分:0)

根据您的描述,还不清楚RM和M是什么。

M是包含所有4张图像的ndarray,RM是包含包含4张图像中数据的给定像素的2x2数组吗?

您可以将4张图像放入相同的ndarray中,使其具有形状(4,N,M),然后重塑切片。

例如,要获取(0,0)条目,您可以执行A[:,0,0]以获取4个像素,然后对其进行整形以获得2x2数组。