Python 语法问题 - 变量名前的冒号
Python syntax question - colon preceding a variable name
我正在使用 OpenCV 学习一些 ML 概念,并且我有一段 python 代码,我需要将其翻译成 C++。我对 python 有非常基本的了解,并且我已经 运行 了解一些我似乎无法找到其含义的语法。
我有一个变量被传递到一个方法(未显示整个方法),它来自 cv2.imread()
的结果,所以是一个图像。在 C++ 中,它的类型是 Mat:
def preprocess_image(img, side = 96):
min_side = min(img.shape[0], img.shape[1])
img = img[:min_side, :min_side * 2]
我有几个问题:
- 语法“:min_side”的作用是什么?
- 这条线在图像方面有什么作用?
行:
img = img[:min_side, :min_side * 2]
正在裁剪图像,使生成的图像的高度为 min_side
,宽度为 min_side * 2
。变量名前的冒号是 python 的切片语法。观察:
arr = [1, 2, 3, 4, 5, 6]
length = 4
print(arr[:length])
输出:
[1, 2, 3, 4]
:min_side
是 shorthand for 0:min_side
即它生成一个从开始到 min_side 的对象切片。例如:
f = [2, 4, 5, 6, 8, 9]
f[:3] # returns [2,4,5]
img = img[:min_side, :min_side *2]
沿高度从 0
到 min_side
以及从 0
到 [=17= 生成图像裁剪(这是一个 numpy 数组) ] 沿宽度。因此,生成的图像将是宽度 min_side * 2
和高度 min_side
之一。
我假设图像的输入是一个矩阵。在Python中图像一般被读取为numpy矩阵
1.What 语法“:min_side”有什么用?
- 它 “切片” List/Array 或者基本上在这种情况下,一个矩阵。
2.What那条线是按照图像做的吗?
- 它“crops”二维数组(基本上是Matrix/Image)
一个简单的切片示例:
x = np.array([[0, 1, 2],[3, 4, 5], [6, 7, 8]])
print(x)
输出:
array([[0, 1, 2],
[3, 4, 5],
[6, 7, 8]])
在此矩阵上执行切片(图片):
x[:2, :3]
切片后的输出:
array([[0, 1, 2],
[3, 4, 5]])
阅读更多相关信息的一个很好的来源是直接来自来源:https://docs.scipy.org/doc/numpy-1.13.0/reference/arrays.indexing.html
我正在使用 OpenCV 学习一些 ML 概念,并且我有一段 python 代码,我需要将其翻译成 C++。我对 python 有非常基本的了解,并且我已经 运行 了解一些我似乎无法找到其含义的语法。
我有一个变量被传递到一个方法(未显示整个方法),它来自 cv2.imread()
的结果,所以是一个图像。在 C++ 中,它的类型是 Mat:
def preprocess_image(img, side = 96):
min_side = min(img.shape[0], img.shape[1])
img = img[:min_side, :min_side * 2]
我有几个问题:
- 语法“:min_side”的作用是什么?
- 这条线在图像方面有什么作用?
行:
img = img[:min_side, :min_side * 2]
正在裁剪图像,使生成的图像的高度为 min_side
,宽度为 min_side * 2
。变量名前的冒号是 python 的切片语法。观察:
arr = [1, 2, 3, 4, 5, 6]
length = 4
print(arr[:length])
输出:
[1, 2, 3, 4]
:min_side
是 shorthand for 0:min_side
即它生成一个从开始到 min_side 的对象切片。例如:
f = [2, 4, 5, 6, 8, 9]
f[:3] # returns [2,4,5]
img = img[:min_side, :min_side *2]
沿高度从 0
到 min_side
以及从 0
到 [=17= 生成图像裁剪(这是一个 numpy 数组) ] 沿宽度。因此,生成的图像将是宽度 min_side * 2
和高度 min_side
之一。
我假设图像的输入是一个矩阵。在Python中图像一般被读取为numpy矩阵
1.What 语法“:min_side”有什么用?
- 它 “切片” List/Array 或者基本上在这种情况下,一个矩阵。
2.What那条线是按照图像做的吗?
- 它“crops”二维数组(基本上是Matrix/Image)
一个简单的切片示例:
x = np.array([[0, 1, 2],[3, 4, 5], [6, 7, 8]])
print(x)
输出:
array([[0, 1, 2],
[3, 4, 5],
[6, 7, 8]])
在此矩阵上执行切片(图片):
x[:2, :3]
切片后的输出:
array([[0, 1, 2],
[3, 4, 5]])
阅读更多相关信息的一个很好的来源是直接来自来源:https://docs.scipy.org/doc/numpy-1.13.0/reference/arrays.indexing.html