我有一个rgb图像,例如
img_rgb[:,:,0] = [ 125 160; 130 125];
img_rgb[:,:,1] = [ 125 160; 130 125];
img_rgb[:,:,2] = [ 125 160; 130 125];
和一个掩码布尔图像,其大小等于img_rgb的大小,例如
mask[:,:] = [ 1 0; 0 1]
对于掩码的每个零值,我想在img-rgb中关联一个nan值,从而获得以下
img_rgb[:,:,0] = [ 125 nan; nan 125]
img_rgb[:,:,1] = [ 125 nan; nan 125]
img_rgb[:,:,2] = [ 125 nan; nan 125]
由于我的图像数组非常大(长度大小为10000px),我希望尽快做到这一点,从而避免双周期。在Matlab中我会使用逻辑运算符
img_rgb(repmat(mask,1,1,3)==0)=nan;
我怎样才能在python中做类似的事情? python v.2.7 提前致谢
答案 0 :(得分:1)
使用numpy数组时,可以在python中使用类似于Matlab的布尔索引。
Broadcasting将为您处理repmat。所以你可以做到:
import numpy as np
img_rgb[mask == 0] = np.Nan