我正在嘗試按名稱將專案附加到陣列中。這是我的代碼:
def create_filters(_shapes):
"""create masked filters to use on the image."""
row, col = _shapes
row, col = int(row/2), int(col/2)
urow, drow = row 10, row-10
ucol, dcol = col 10, col-10
masks = []
mask1 = np.ones(_shapes, np.uint16)
mask1[:,dcol:ucol] = 0
# masks.append(mask1)
mask2 = np.ones(_shapes, np.uint16)
mask2[drow:urow,:] = 0
# masks.append(mask2)
mask3 = cv.bitwise_not(mask1)
# masks.append(mask3)
mask4 = cv.bitwise_not(mask2)
# masks.append(mask4)
mask5 = np.zeros(_shapes, np.uint16)
mask5[drow:urow,dcol:ucol] = 255
# masks.append(mask5)
mask6 = cv.bitwise_not(mask5)
# masks.append(mask6)
mask7 = np.copy(mask1)
mask7[drow:urow,:] = 0
# masks.append(mask7)
mask8 = cv.bitwise_not(mask7)
# masks.append(mask8)
for i in range(1,9):
m = globals()[f'mask{i}']
masks.append(m)
return masks
所以基本上我想將所有 mask1-8 附加到面具。現在,由于 mask1-8 是區域變數,我不能使用 global()。有沒有更好的方法來做到這一點?我知道我可以像這樣初始化陣列:
masks=[mask1, mask2,...]
但我特別要求在 for 回圈中使用字串作為變數名。
uj5u.com熱心網友回復:
有幾種方法可以解決這個問題,但要解決您的具體問題:
根據我的評論,您可以簡單地使用locals()代替globals().
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/376319.html
標籤:Python
