python中一个三维数组等于一个数值,怎么理解?

  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)

img

python下面的bool不像c++下面可以使用0和非零表示的,他就是True和False.

parsings == idx 是条件判断;
不论 img 是 二维(灰度图像)还是三维(彩色图像),对 img 中所有的 条件判断为 True 的元素,将 128 赋值给该元素。

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632