我试图将MATLAB代码转换为Python,并且我仍然坚持这一行:
我有一个三维图像。当我运行image.shape
时,我得到(455L,621L,3L)
这意味着455行,621列和3个颜色通道。
我在MATLAB中做的是image(:,:,2:3)
,这意味着获取所有行,获取所有列并获取通道2和3.
当我尝试转换为Python / numpy时,我这样做是错误的:
img2a = img2[0:img2.shape[0]][0:img2.shape[1]][1:2]
正确的方法是什么?
答案 0 :(得分:1)
Matlab和Numpy在索引和切片方面有些相似。在这种情况下,它们几乎相同:image[:,:,1:3]
应该在Numpy中运行。这里的主要区别是零启动与索引的一次启动。
但是,您似乎可以从阅读indexing in Numpy中受益。
在大多数情况下,0和轴的末端都可以隐藏它们(例如x[:5]
得到0到4,而x[4:]
得到4到轴的末端) ,所以不需要包含0或获取形状信息。