[英]How can I replace a value from one array with a value in the same index of another array?
I have two 3D numpy arrays which represent two images. 我有两个表示两个图像的3D numpy数组。 The shape of each array is (1080, 1920, 3).
每个数组的形状是(1080,1920,3)。 The number 3 represents the RGB value of each pixel in the image.
数字3表示图像中每个像素的RGB值。
My goal is to replace every non-black pixel in the first array to the value of the "parallel" pixel (in the same index) from the other array. 我的目标是将第一个数组中的每个非黑色像素替换为另一个数组中“平行”像素(在相同索引中)的值。
How can I do this using only numpy methods? 如何仅使用numpy方法来做到这一点?
Use a mask with True/False values 使用具有True / False值的蒙版
# All pixels should be normalized 0..1 or 0..254
first_img = np.random.rand(1920,1080,3)
second_img = np.random.rand(1920,1080,3)
eps = 0.01 # Black pixel threshold
mask = first_img.sum(axis=2) > eps
for i in range(first_img.shape[2]):
first_img[:,:,i] = (first_img[:, :, i] * mask) + ((1 - mask) * second_img[:, :, i])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.