opencv-python实战项目八:根据颜色抠出图片中感兴趣区域


一,简介

本项目旨在开发一个基于OpenCV的图像处理工具,实现根据颜色从图片中自动抠图的功能。通过该项目,用户可以轻松指定一种颜色,系统将自动识别并提取该颜色的所有像素,生成新的图像。

二,实现方案

本方案基于OpenCV的图像处理,通过指定颜色范围,从输入图像中自动识别并提取该颜色的所有像素,生成新的图像。首先,通过颜色空间转换和掩码生成,实现颜色识别;然后,通过形态学操作修正掩码;最后抠出图像中对应掩码的区域。

三、算法实现步骤

3.1 cv2.inRange()选择抠出的颜色
在这里插入图片描述将图像转化为hsv颜色空间,按照上表中的数值进行颜色选择,本次选择的颜色为红色,使用的函数为cv2.inRange(),
cv2.inRange 是 OpenCV 中的一个函数,用于生成一个掩码,该掩码包含在指定范围内的所有像素。

函数介绍:
src: 输入的图像,可以是灰度图或彩色图。
lowerb: 表示颜色范围的最低边界。它是一个数组,包含三个值:蓝色通道的下限、绿色通道的下限和红色通道的下限。
upperb: 表示颜色范围的最高边界。它也是一个数组,包含三个值:蓝色通道的上限、绿色通道的上限和红色通道的上限。
cv2.inRange 函数返回一个与 src 图像大小相同的掩码图像。在这个掩码图像中,像素值在 lowerb 和 upperb 范围内的像素会被设置为255(白色),表示这些像素属于指定的颜色范围;而其他像素则被设置为0(黑色),表示这些像素不属于指定的颜色范围。

使用方法:

hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
# 生成检测红色区域的掩码
lower_red = np.array([0, 43, 46])
upper_red = np.array([10, 255, 255])
mask1 = cv2.inRange(hsv, lower_red, upper_red)
lower_red = np.array([156, 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值