使用 cv::inRange (OpenCV) 选择对象检测的颜色边界
使用 cv::inRange 函数进行颜色检测时,选择适当的 HSV 上限和下限至关重要。本文解决了如何根据感兴趣的特定颜色有效地确定这些边界的问题。
背景
HSV(色相、饱和度、值)是一种颜色图像处理中常用的空间。 HSV 模型将颜色表示为三个组成部分:
选择边界
根据检测到的特定颜色确定正确的 HSV 边界。以下是分步指南:
确定色调:
调整色调范围:
设置饱和度和值范围:
考虑格式:
示例
让我们考虑一下检测图像中橙色盖子的示例。
单纯疱疹病毒值:
调整后边界:
Python 代码:
import cv2 import numpy as np ORANGE_MIN = np.array([11, 50, 50], np.uint8) ORANGE_MAX = np.array([33, 255, 255], np.uint8) # Read and convert image img = cv2.imread('image.png') hsv_img = cv2.cvtColor(img, cv2.COLOR_BGR2HSV) # Detect orange using inRange mask = cv2.inRange(hsv_img, ORANGE_MIN, ORANGE_MAX) # Display mask cv2.imshow('Mask', mask) cv2.waitKey(0)
以上是如何使用 cv::inRange 有效确定物体检测的 HSV 颜色边界?的详细内容。更多信息请关注PHP中文网其他相关文章!