我正在使用 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”有什么作用?
- 那條線在影像方面有什么作用?
uj5u.com熱心網友回復:
線路:
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]
uj5u.com熱心網友回復:
:min_side是0:min_sideie的簡寫,它生成一個從 start 到 min_side 的物件切片。例如:
f = [2, 4, 5, 6, 8, 9]
f[:3] # returns [2,4,5]
img = img[:min_side, :min_side *2]從產生影像的作物(其為numpy的陣列)0,以min_side沿高度和從0以min_side * 2沿著寬度。因此,生成的影像將是 widthmin_side * 2 和 height 之一min_side。
uj5u.com熱心網友回復:
我假設影像的輸入是一個矩陣。在 Python 中,影像通常被讀取為 numpy 矩陣
1.語法“:min_side”有什么作用?
- 它“切片”串列/陣列,或者在這種情況下基本上是一個矩陣。
2.那條線在影像方面有什么作用?
- 它“裁剪”二維陣列(基本上是矩陣/影像)
一個簡單的切片示例:
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
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/340885.html
