Python:颜色分割

2023-12-21  本文已影响0人  大龙10

一、图像分割

二、颜色分割

1、定义

2、原理

3、基本思路

4、取值范围

在opencv hsv颜色空间中

5、实现步骤

三、inRange()函数

mask = cv2.inRange(src, lowerb, upperb[, dst])

注:mask代表了与指定颜色范围匹配的像素点的位置信息,即在指定颜色范围内的像素点在二值图像中对应的像素值为255,不在指定颜色范围内的像素点在二值图像中对应的像素值为0。因此,通过使用这个掩膜,我们可以选择性地对图像进行操作,只对指定颜色范围内的像素点进行处理,而不影响其他像素点.

四、常见颜色的HSV大致范围:

五、程序

import cv2
import numpy as np

# 读入图片
img = cv2.imread( "d:\\OpenCVpic\\happyfish.jpg")
cv2.imshow('img', img)

# 转换颜色空间
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)

# 定义绿色范围
lower_green = np.array([40, 50, 50])
upper_green = np.array([90, 255, 255])

# 定义黄色范围
lower_yellow = np.array([15, 50, 50])
upper_yellow = np.array([40, 255, 255])

# 根据颜色范围创建掩码
mask_green = cv2.inRange(hsv, lower_green, upper_green)
mask_yellow = cv2.inRange(hsv, lower_yellow, upper_yellow)

# 合并掩码
mask = cv2.bitwise_or(mask_green, mask_yellow)

# 应用掩码
result = cv2.bitwise_and(img, img, mask=mask)

# 显示结果
cv2.imshow('result', result)
cv2.waitKey(0)
cv2.destroyAllWindows()

运行结果

六、资料

「黑夜寻白天」的博客:
https://blog.csdn.net/weixin_44598554/article/details/130627957
上一篇 下一篇

猜你喜欢

热点阅读