当前位置:   article > 正文

python 的 inRange()函数_mask=cv2.inrange(erode_hsv,color_dist[i]['lower'],

mask=cv2.inrange(erode_hsv,color_dist[i]['lower'],color_dist[i]['upper']) if(i==target_color[0]): inrange_hsv=cv2.bitwise_and(erode_hsv,erode_hsv,mask = mask)

python 的 inRange()函数

作用:

根据设定的阈值,去除阈值之外的背景部分

具体参数:
mask = cv2.inRange(hsv, lower_red, upper_red)
第一个参数:hsv指的是原图
第二个参数:lower_red指的是图像中低于这个lower_red的值,图像值变为0
第三个参数:upper_red指的是图像中高于这个upper_red的值,图像值变为0

举个栗子:
一张图片中包含红绿蓝三种颜色的形状,找到对应形状的轮廓并标记

import os
import cv2
import numpy as np


ball_color1 = ['green','red','blue']
color = [(0, 0, 255),(255, 0, 0),(0, 255, 0)]  #轮廓的对应标记颜色

color_dist = {'red': {'Lower': np.array([0, 60, 60]), 'Upper': np.array([6, 255, 255])},
              'blue': {'Lower': np.array([100, 80, 46]), 'Upper': np.array([124, 255, 255])},
              'green': {'Lower': np.array([35, 43, 35]), 'Upper': np.array([90, 255, 255])},
              }

path = "D:/11/"
dir1 = os.listdir(path)
for img in dir1:
    image = "D:/11/"+img
    img1 = cv2.imread(image)   #读取图片
    if img1 is not None:
        for i in range(0,3):
            ball_color = ball_color1[i]
            gs_frame = cv2.GaussianBlur(img1, (5, 5), 0)                     # 高斯模糊
            hsv = cv2.cvtColor(gs_frame, cv2.COLOR_BGR2HSV)                 # 转化成HSV图像
            erode_hsv = cv2.erode(hsv, None, iterations=2)                   # 腐蚀 粗的变细
            inRange_hsv = cv2.inRange(erode_hsv, color_dist[ball_color]['Lower'], color_dist[ball_color]['Upper'])
            #除去对应颜色形状之外的背景
            contours = cv2.findContours(inRange_hsv.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)[-2]   #寻找轮廓
            img2 = cv2.drawContours(img1, contours, -1, color[i], 1)#绘制轮廓
        cv2.imshow('camera', img2)
        cv2.waitKey(0)
    else:
        print("无图片")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/145176
推荐阅读
相关标签
  

闽ICP备14008679号