栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如果满足条件,如何优化更改3d numpy.array的值

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如果满足条件,如何优化更改3d numpy.array的值

RGB图像呢?

img[img[:, :, 0] < 255, 0] = 255

使用此方法,我们从图像的红色通道创建一个布尔蒙版,并检查其值是否小于255。如果是,则将这些值设置为255。

OpenCV将图像读取为

BGR
,因此:

img[img[:, :, 2] < 255, 2] = 255

将是适当的。

或者,您也可以执行以下操作:

mask_R = img < 255)[:, :, 2]img[mask_R, 2] = 255

例:

In [24]: aOut[24]: array([[[168],        [170],        [175]],       [[169],        [170],        [172]],       [[165],        [170],        [174]]])In [25]: a > 170Out[25]: array([[[False],        [False],        [ True]],       [[False],        [False],        [ True]],       [[False],        [False],        [ True]]], dtype=bool)

使用以上条件(

a >170
),我们生成一个布尔掩码。现在,假设您采用任何一个通道并将其放置在此布尔掩码的顶部。当我们分配新值时,无论蒙版有何
true
值,图像数组中的相应元素都将被重置为新值。

# we just filter out the values in array which match our conditionIn [36]: a[a > 170]Out[36]: array([175, 172, 174])# assign new values. Let's say 180In [37]: a[a > 170] = 180In [38]: aOut[38]: array([[[168],        [170],        [180]],    # <== new value       [[169],        [170],        [180]],    # <== new value       [[165],        [170],        [180]]])   # <== new value


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/669439.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号