opencv inrange
原文链接: opencv inrange
OpenCV中的inRange()函数可实现二值化功能(这点类似threshold()函数),更关键的是可以同时针对多通道进行操作,使用起来非常方便!
主要是将在两个阈值内的像素值设置为白色(255),
而不在阈值区间内的像素值设置为黑色(0),该功能类似于之间所讲的双阈值化操作。
import cv2
import numpy as np
x= np.arange(27).reshape(3,3,3)
x[np.where(x==21)]=1
x[np.where(x==22)]=2
x[np.where(x==24)]=4
x[np.where(x==25)]=5
array([[[18, 19, 20],
[ 1, 2, 23],
[ 4, 5, 26]],
[[18, 19, 20],
[ 1, 2, 23],
[ 4, 5, 26]],
[[18, 19, 20],
[ 1, 2, 23],
[ 4, 5, 26]]])
y=np.array([0,1,2])
z=np.array([18,19,20])
cv2.inRange(x,y,z)
结果
array([[255, 255, 255],
[255, 255, 255],
[255, 0, 0]], dtype=uint8)
由于 [1, 2, 23],
[4, 5, 26]有元素超出范围,那么结果为0