簡體   English   中英

通過2D數組索引3D數組

[英]Index 3D array by 2D array

我有一個3D彩色圖像im(形狀為512 512 3)和一個2D陣列蒙版(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)

它依賴於以下事實:true為1,false為0。

它可能不是最清晰或最有效的方法,但是它仍然可能比通過布爾數組建立索引要快得多,例如im[ mask3 < threshold ] *= 0.2無論如何,除非索引的真值數量非常少 )。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM