1
我有一個三維彩色圖像im(形狀512 512 3)和一個二維數組掩模(512 512)。我想通過掩碼註釋該彩色圖像:由二維數組索引三維數組
im = im[mask>threshold] + im[mask<threshold] * 0.2 + (255,0,0) * [mask<threshold].
如何有效地使用Python編寫此代碼?
我有一個三維彩色圖像im(形狀512 512 3)和一個二維數組掩模(512 512)。我想通過掩碼註釋該彩色圖像:由二維數組索引三維數組
im = im[mask>threshold] + im[mask<threshold] * 0.2 + (255,0,0) * [mask<threshold].
如何有效地使用Python編寫此代碼?
這工作:
mask3 = numpy.dstack(mask,mask,mask)
im = im * (mask3>threshold) + im * (mask3<threshold) * 0.2
im[:,:,0] += 255 * (mask<threshold)
它依賴於一個事實,即真正的數值爲1,假爲0
它可能不是最清晰的還是最有效的,但它會仍然可能比通過布爾數組進行索引要快得多,例如im[ mask3 < threshold ] *= 0.2
(,除非索引具有非常少的真值,無論如何)。