操作像素值处于某个范围的像素,其他像素不变(二)——np.where()

操作像素值处于某个范围的像素,其他像素不变

1.问题描述

上节采用for循环来操作像素值处于某个范围的像素,最大的问题就是耗时。

2.解决办法

本节采用np.where()来实现操作像素值处于某个范围的像素。
np.where()使用方法如下:
1.np.where(condition,x,y) 当where内有三个参数时,第一个参数表示条件,当条件成立时where方法返回x,当条件不成立时where返回y
2.np.where(condition) 当where内只有一个参数时,那个参数表示条件,当条件成立时,where返回的是每个符合condition条件元素的坐标,返回的是以元组的形式

本节主要采用第一种方法:
代码如下

#H是一个二维数组
H1=np.array(np.where((15 < H) & (H < 45),H+delta,H))
#将像素值处于15~45之间的像素去拿不加delta,其他像素保持不变

以上代码意思是:将像素值处于15~45之间的像素加delta,其他像素保持不变。

3.总结

利用np.where()来操作像素值处于某个范围的像素,不仅速度更快,而且代码更加简介。

参考:https://blog.youkuaiyun.com/island1995/article/details/90200151(np.where()的使用方法)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值