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()的使用方法)