python-opencv颜色提取分割

本文介绍了一种使用Python实现的颜色检测技术,通过设定颜色范围来实现对象检测、跟踪和简单背景分割。具体步骤包括读取图像、定义颜色区间、创建NumPy数组并进行颜色阈值操作,最后展示检测结果。
部署运行你感兴趣的模型镜像

1.用于简单的对象检测、跟踪

2.简单前背景分割

#encoding:utf-8
#黄色检测
import numpy as np
import argparse
import cv2
image = cv2.imread('huang.png')
color = [
    ([0, 70, 70], [100, 255, 255])#黄色范围~这个是我自己试验的范围,可根据实际情况自行调整~注意:数值按[b,g,r]排布
]
#如果color中定义了几种颜色区间,都可以分割出来 
for (lower, upper) in color:
    # 创建NumPy数组
    lower = np.array(lower, dtype = "uint8")#颜色下限
    upper = np.array(upper, dtype = "uint8")#颜色上限

    # 根据阈值找到对应颜色
    mask = cv2.inRange(image, lower, upper)
    output = cv2.bitwise_and(image, image, mask = mask)

    # 展示图片
    cv2.imshow("images", np.hstack([image, output]))
    cv2.waitKey(0)


您可能感兴趣的与本文相关的镜像

Python3.10

Python3.10

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

使用Python - OpenCV进行颜色识别,通常可以按照以下步骤进行: ### 1. 读取图像 使用`cv2.imread()`函数读取需要进行颜色识别的图像: ```python import cv2 # 读取图像 image = cv2.imread('your_image.jpg') ``` ### 2. 颜色空间转换 为了更方便地进行颜色识别,通常将图像从BGR颜色空间转换为HSV(色调、饱和度、亮度)颜色空间,因为HSV颜色空间更适合进行颜色分割。使用`cv2.cvtColor()`函数进行转换: ```python # 将BGR图像转换为HSV图像 hsv_image = cv2.cvtColor(image, cv2.COLOR_BGR2HSV) ``` ### 3. 定义目标颜色的HSV范围 根据需要识别的颜色,定义其在HSV颜色空间中的范围。例如,要识别蓝色,可以定义如下范围: ```python import numpy as np # 定义蓝色的HSV范围 lower_blue = np.array([100, 150, 0]) upper_blue = np.array([140, 255, 255]) ``` ### 4. 创建掩码 使用`cv2.inRange()`函数创建一个掩码,该掩码将目标颜色范围内的像素标记为白色(255),其他像素标记为黑色(0): ```python # 创建蓝色掩码 blue_mask = cv2.inRange(hsv_image, lower_blue, upper_blue) ``` ### 5. 应用掩码 使用`cv2.bitwise_and()`函数将原始图像与掩码进行按位与操作,从而提取出目标颜色的区域: ```python # 应用掩码 blue_result = cv2.bitwise_and(image, image, mask=blue_mask) ``` ### 6. 显示结果 使用`cv2.imshow()`函数显示原始图像和提取出的目标颜色区域: ```python # 显示原始图像和蓝色区域 cv2.imshow('Original Image', image) cv2.imshow('Blue Region', blue_result) # 等待按键事件 cv2.waitKey(0) cv2.destroyAllWindows() ``` ### 完整代码示例 ```python import cv2 import numpy as np # 读取图像 image = cv2.imread('your_image.jpg') # 将BGR图像转换为HSV图像 hsv_image = cv2.cvtColor(image, cv2.COLOR_BGR2HSV) # 定义蓝色的HSV范围 lower_blue = np.array([100, 150, 0]) upper_blue = np.array([140, 255, 255]) # 创建蓝色掩码 blue_mask = cv2.inRange(hsv_image, lower_blue, upper_blue) # 应用掩码 blue_result = cv2.bitwise_and(image, image, mask=blue_mask) # 显示原始图像和蓝色区域 cv2.imshow('Original Image', image) cv2.imshow('Blue Region', blue_result) # 等待按键事件 cv2.waitKey(0) cv2.destroyAllWindows() ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值