python 的 inRange()函数

您所在的位置:网站首页 颜色hsv参数 python 的 inRange()函数

python 的 inRange()函数

2023-09-02 02:19| 来源: 网络整理| 查看: 265

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("无图片")


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3