将matlab中的一行转换为python

时间:2016-02-09 18:27:22

标签: python matlab numpy image-processing

我试图将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]

正确的方法是什么?

1 个答案:

答案 0 :(得分:1)

Matlab和Numpy在索引和切片方面有些相似。在这种情况下,它们几乎相同:image[:,:,1:3]应该在Numpy中运行。这里的主要区别是零启动与索引的一次启动。

但是,您似乎可以从阅读indexing in Numpy中受益。

在大多数情况下,0和轴的末端都可以隐藏它们(例如x[:5]得到0到4,而x[4:]得到4到轴的末端) ,所以不需要包含0或获取形状信息。