【发布时间】:2019-10-22 09:39:34
【问题描述】:
根据下面显示的公式,我需要通过将段中的强度值之和除以段中的像素数来计算平均阈值。
其中 Xi' 是二进制掩码 (structure_mask),|Xi'|是多个 (xi_modulus)。
I(x,y) 是像素强度。
img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
...
...
structure_mask = np.logical_and(magnitude_mask, intensity_mask).astype(np.uint8)
xi_modulus = np.count_nonzero(structure_mask.all(axis=2))
intensity_sum # = ??
如何计算与numpy的强度总和?
已编辑:根据@HansHirse 的回答,我尝试执行以下操作:
thresh_val = np.mean(img_gray[structure_mask])
我有IndexError: too many indices for array
structure_mask 的形状为 (1066, 1600,1) 和 img_gray -
(1066,1600)
更新:只是一个愚蠢的错误。形状不匹配已通过适当的索引修复
structure_mask = np.logical_and(magnitude_mask, intensity_mask)[:, :, 0]
【问题讨论】:
-
使用
np.squeeze(structure_mask)去掉额外的维度。
标签: python image numpy math image-processing