labels_to_mask = [0,14,15,16,18]
for idx in labels_to_mask:
img[parsings == idx] = 128
img和parsings均是一个三维数组,parsing = np.array(parsing.getdata(), dtype=np.uint8).reshape(parsing.size[1], parsing.size[0], 3)
谢谢!
labels_to_mask = [0,14,15,16,18]
for idx in labels_to_mask:
img[parsings == idx] = 128
img和parsings均是一个三维数组,parsing = np.array(parsing.getdata(), dtype=np.uint8).reshape(parsing.size[1], parsing.size[0], 3)
谢谢!
opencv或者numpy里面,parsings == idx,idx是一个数字,parsings 数组里面等于这个idx的数字全部是True,而不等于的就会变成False,parsings == idx这句话的返回值(假设返回值为parsings_return)和parsings 的维度是一样的,只不过数据由原来的parsings 的原始数据全部变成了True或者False。
img[parsings == idx] = 128这句话就表示将parsings_return 中为True的位置(x,y,z)上的img中的值改成128.
举个例子来说
import numpy as np
parsings =np.array([0,1,2,3,3,4,5])
idx=3
img=np.array([6,7,8,9,10,11,12])
parsings_return=parsings==idx
print(parsings_return)
imgs=img[parsings==idx]
print(imgs)
python下面的bool不像c++下面可以使用0和非零表示的,他就是True和False.