Python 提取子矩阵时出现的问题

Python 提取子矩阵时出现的问题,python,numpy,matrix,scipy,submatrix,Python,Numpy,Matrix,Scipy,Submatrix,我正在写一段代码,从矩阵中提取一个子矩阵。作为模块,我导入了scipy和Image。当我运行脚本时,我得到了错误 submatrix = im[x_min:x_max, y_min:y_max] TypeError: an integer is required 我检查过了,最小值和最大值实际上是整数。。。你对如何解决这个问题有什么建议吗 x_min = int(x - 50) x_max = int(x + 50) y_min = int(y - 50) y_max = int(y + 50

我正在写一段代码,从矩阵中提取一个子矩阵。作为模块,我导入了scipy和Image。当我运行脚本时,我得到了错误

submatrix = im[x_min:x_max, y_min:y_max]
TypeError: an integer is required
我检查过了,最小值和最大值实际上是整数。。。你对如何解决这个问题有什么建议吗

x_min = int(x - 50)
x_max = int(x + 50)
y_min = int(y - 50)
y_max = int(y + 50)
if x_min < 0:
    x_min = 0
    continue
if y_min < 0:
    y_min = 0
    continue
if x_max > 2160:
    x_max = 2160
    continue
if y_max > 2592:
    y_max = 2592
    continue
submatrix = im[x_min:x_max, y_min:y_max]
figure(1)
imshow(submatrix)
break
x_min=int(x-50)
x_max=int(x+50)
y_min=int(y-50)
y_max=int(y+50)
如果x_min<0:
x_min=0
持续
如果y_min<0:
y_min=0
持续
如果x_max>2160:
x_max=2160
持续
如果y_max>2592:
y_max=2592
持续
子矩阵=im[x_最小值:x_最大值,y_最小值:y_最大值]
图(1)
imshow(子矩阵)
打破

如果使用
导入图像
,则您的
im
对象不是numpy数组,而是PixelAccess对象。
因此,如果你真的想要一个numpy数组,你可以使用
imread
而不是
Image.open

一个最小的例子(如
x_min
等为int)是

导入matplotlib.pyplot作为plt
im=plt.imread(“/…图像_%03i.tif”%(索引))
子矩阵=im[x_最小值:x_最大值,y_最小值:y_最大值]
plt.图(1)
plt.imshow(子矩阵)
plt.show()

我猜
im
是一个numpy数组吗?是的,它是一个通过读取图像获得的矩阵:image=image.open(“/…image_%03i.tif”%(index));im=image.load()谢谢Jakob!现在我只需要找到一种方法来绘制我的子矩阵(现在它不会弹出)。干杯