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)

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

    原文作者:Monster_H7
    原文地址: https://blog.csdn.net/Monster_H7/article/details/103558345
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞