numpy - 有没有一种聪明的方法来简化我的逐像素值更改代码?
问题描述
# masking
masked = mask.copy()
for py in range(0,h):
for px in range(0,w):
if masked[py][px][0] != 0:
masked[py][px] = im[py][px]
masked = cv2.cvtColor(masked, cv2.COLOR_RGB2BGR)
有没有什么奇特的方法可以将我的脏代码转换为带有 cv2 或 numpy 函数的简单代码?
解决方案
我认为这可能有助于替换循环(与您的循环非常相似):
indices = np.where(masked[:,:,0] != 0)
masked[indices]=im[indices]
推荐阅读
- python-3.x - 如何使用 xlsxwriter 在格式方法中使用字符串值
- python - itertools.groupby 的反面?
- python - 如何比较数据框行的特定条件?
- javascript - 我们可以在 Shopify 上添加 CSS 类吗?
- python - Pandas 根据条件更快地移动多行
- azure-alerts - 如何监视 Azure SQL 中的表是否为空?
- c# - 棱镜多窗口/叠加显示
- java - 这是哪种类型的列表,如何访问 tokenValue?
- ionos - 如何将 Ionos 上部署的 API 集成到 React 前端
- docker - 如何从 podman 重用 docker 格式的图像存储