cv2.inrange
时间: 2023-07-02 18:04:08 浏览: 66
cv2.inrange是OpenCV库中的一个函数,用于将图像转换为二值图像。它接受三个参数:输入图像、低于阈值的像素值、高于阈值的像素值。函数会将输入图像中低于阈值和高于阈值之间的像素值设为255,其余像素设为0,然后返回二值图像。
例如,如果我们想将一张灰度图像中所有像素值在50到100之间的像素设为白色,其余像素设为黑色,可以使用如下代码:
```
import cv2
img_gray = cv2.imread('image.png', cv2.IMREAD_GRAYSCALE)
mask = cv2.inrange(img_gray, 50, 100)
cv2.imshow('mask', mask)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
这段代码会将图像读取为灰度图像,然后用cv2.inrange函数生成一个二值图像,最后将二值图像显示出来。
相关问题
cv2.inRange
cv2.inRange() 是 OpenCV 中的一个函数,用于创建一个二值掩膜(mask),提取出输入图像中像素值在指定范围内的部分。这个函数的语法为:
`cv2.inRange(src, lowerb, upperb[, dst])`
其中,src 是输入图像,lowerb 和 upperb 是指定的范围,dst 是输出的二值掩膜。例如,如果想提取出输入图像中颜色在蓝色范围内的部分,可以使用以下代码:
```
import cv2
import numpy as np
img = cv2.imread("test.jpg")
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
lower_blue = np.array([110, 50, 50])
upper_blue = np.array([130, 255, 255])
mask = cv2.inRange(hsv, lower_blue, upper_blue)
res = cv2.bitwise_and(img, img, mask=mask)
cv2.imshow("img", img)
cv2.imshow("mask", mask)
cv2.imshow("res", res)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
这段代码先将输入图像转换为 HSV 颜色空间,然后定义了颜色范围 lower_blue 和 upper_blue,在 HSV 颜色空间中,蓝色的范围是 [110, 50, 50] 到 [130, 255, 255]。最后使用 cv2.inRange() 函数提取出颜色在范围内的部分,并将其与原图进行按位与操作,得到提取出来的部分。
cv2.inrange函数
cv2.inRange函数是OpenCV库中的一个函数,用于在图像中提取指定范围内的像素值。该函数可以帮助我们实现图像分割、颜色识别等任务。
函数的语法如下:
```python
cv2.inRange(src, lowerb, upperb, dst=None)
```
参数说明:
- src:输入图像,可以是单通道或多通道图像。
- lowerb:指定颜色范围的下界,可以是一个标量或一个包含每个通道下界的数组。
- upperb:指定颜色范围的上界,可以是一个标量或一个包含每个通道上界的数组。
- dst:输出图像,与输入图像具有相同的大小和深度。如果未提供,则会创建一个与输入图像相同大小和深度的图像。
该函数会根据指定的颜色范围,在输入图像中将在范围内的像素设置为255(白色),其余像素设置为0(黑色)。可以通过对输出图像进行二值化处理,将感兴趣的区域提取出来。
例如,下面的代码将提取输入图像中红色范围内的像素:
```python
import cv2
import numpy as np
image = cv2.imread('input.jpg')
hsv_image = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)
lower_red = np.array([0, 100, 100])
upper_red = np.array([10, 255, 255])
mask = cv2.inRange(hsv_image, lower_red, upper_red)
result = cv2.bitwise_and(image, image, mask=mask)
cv2.imshow('Result', result)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在上述代码中,首先将输入图像转换为HSV颜色空间,然后定义了红色范围的下界和上界。通过cv2.inRange函数生成了一个遮罩图像,然后使用cv2.bitwise_and函数将遮罩应用到原始图像上,得到提取出红色区域的结果图像。最后通过cv2.imshow显示结果图像,并通过cv2.waitKey等待按键响应,最后通过cv2.destroyAllWindows关闭窗口。
希望能解答到您的问题!如果您还有其他问题,请继续提问。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)