Python和OpenCV 提取图像特定目标区域-图像分割【原创】

在OpenCV中,一般转换图像格式为HSV格式(默认格式为BGR),再进行指定颜色的提取。

直接使用RGB提取颜色不推荐

HSV格式的介绍:HSV 为色相,饱和度,明度。

 

1.将一副图像从rgb颜色空间转换到hsv颜色空间

hsv = cv2.cvtColor(rgb_image, cv2.COLOR_BGR2HSV)

2.然后利用cv2.inRange函数设阈值,去除背景部分

  mask = cv2.inRange(hsv, lower_blue, highter_blue) #lower20===>0,upper200==>0,

函数很简单,参数有三个
第一个参数:hsv指的是原图

第二个参数:lower_blue指的是图像中低于这个lower_red的值,图像值变为0

第三个参数:higher_blue指的是图像中高于这个upper_red的值,图像值变为0

而在lower_blue~higher_blue之间的值变成255

3.提取opencv logo中的蓝色部分,完整的代码如下:

 

import cv2
import numpy as np

# 读取名称为 opencvlogo.png的图片
img = cv2.imread("opencvlogo.png",1)

# 将图片转换为格式 hsv
hsv = cv2.cvtColor(img,cv2.COLOR_BGR2HSV)

# 定义蓝色的上下限
lower_blue =  np.array([100,50,50])
higher_blue = np.array([140,255,255])

#在图片中提取蓝色的部分
mask = cv2.inRange(hsv,lower_blue,higher_blue)

#和原图像求“与”操作,只保留蓝色
left_blue = cv2.bitwise_and(img,img,mask=mask)

# 显示hsv
cv2.imshow("P3-OpenCV logo",img)
# 显示Blue
cv2.imshow("P3-Blue",left_blue)


cv2.waitKey(0)

preview

  • 7
    点赞
  • 78
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Monster_H777

我直说吧:你的奖励我的动力~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值