numpy通过 mask进行索引非常容易。
有许多不同的方法可以做到这一点。例如,这里有两个浮动图像。然后我创建一个布尔掩码(在这种情况下,我采用随机浮点图像,大约一半的像素将被包括在内,一半被排除在外)。然后对于组合图像,您可以将其设置为等于其中一个图像,然后无论掩码在哪里,True您都可以插入来自另一个图像的值:
>>> import numpy as np
>>> img1 = np.random.rand(100,100,3)
>>> img2 = np.random.rand(100,100,3)
>>> mask = np.random.rand(100,100)>.5
>>> comb_img = img2.copy()
>>> comb_img[mask] = img1[mask]
Run Code Online (Sandbox Code Playgroud)
所以要清楚,在所有的点mask是True,这个comb_img具有的价值img1,否则有值img2。
另一种可能更明确的组合两个图像的方法是首先将组合图像创建为空白图像,然后在掩码点插入一张图像,然后在翻转的掩码点插入另一张图像:
>>> comb_img = np.zeros_like(img1)
>>> comb_img[mask] = img1[mask]
>>> comb_img[~mask] = img2[~mask]
Run Code Online (Sandbox Code Playgroud)
如果你还没有看到它,布尔numpy数组会~反转它:
>>> ~np.array([True, False, True])
array([False, True, False], dtype=bool)
Run Code Online (Sandbox Code Playgroud)
当然,您的掩码也可以是数字的,您可以只使用mask==0和mask>0来创建用于索引的逻辑数组。
| 归档时间: |
|
| 查看次数: |
5907 次 |
| 最近记录: |