Opencv中inRange函数使用介绍

这篇具有很好参考价值的文章主要介绍了Opencv中inRange函数使用介绍。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

inRange是OpenCV中的图像阈值函数,用于将图像中的像素值限制在指定的范围内。它的输入和输出如下所述:

dst = cv2.inRange(src, lowerb, upperb[, dst])

输入值:

  • src:输入图像,可以是灰度图像或彩色图像。
  • lowerb:表示下界的阈值,可以是一个标量值或与输入图像通道数相同的数组。对于灰度图像,lowerb是一个标量值。对于彩色图像,你可以通过传递一个数组,每个元素分别表示每个通道的下界阈值。
  • upperb:表示上界的阈值,与lowerb的类型相同,指定上界阈值。对于灰度图像,upperb是一个标量值。对于彩色图像,你可以通过传递一个数组,每个元素分别表示每个通道的上界阈值。
  • dst(可选):输出图像,用于存储计算得到的阈值图像。它应该具有与输入图像相同的尺寸和数据类型。

返回值:

  • dst:阈值图像,与输入图像具有相同的尺寸和数据类型。如果提供了dst参数,则返回值与dst相同。

inRange函数的作用是根据指定的下界和上界阈值,将输入图像中的像素值限制在这个范围内。它会将满足条件的像素设置为255(白色),不满足条件的像素设置为0(黑色),从而形成一个二值图像。这种二值图像常用于图像分割、目标提取等任务中。下面是一个示例代码,演示如何使用inRange函数将输入图像中的像素值限制在指定范围内,并输出阈值图像:

import cv2
import numpy as np

# 加载图像
image = cv2.imread('path/to/image.jpg')

# 将图像转换为HSV颜色空间
hsv = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)

# 定义颜色范围(例如,提取蓝色对象)
lower_blue = np.array([100, 50, 50])  # 下界阈值
upper_blue = np.array([130, 255, 255])  # 上界阈值

# 应用颜色范围阈值
mask = cv2.inRange(hsv, lower_blue, upper_blue)

# 显示阈值图像
cv2.imshow('Thresholded Image', mask)
cv2.waitKey(0)
cv2.destroyAllWindows()

在上面的示例中,我们首先将图像转换为HSV颜色空间,然后定义了蓝色对象的颜色范围。通过调用inRange函数并传递HSV图像和颜色范围阈值,我们得到了一个阈值图像mask,其中满足蓝色范围的像素被设置为255(白色),不满足范围的像素被设置为0(黑色)。最后,我们显示了阈值图像。

其中最为关键的是要找到合适的lowerb和upperb,这个在CAMShift算法中非常关键。补充HSV知识点,HSV(Hue, Saturation, Value)是一种常用的颜色空间,它基于颜色的感知属性。HSV 颜色空间将颜色分为三个主要组成部分:文章来源地址https://www.toymoban.com/news/detail-752791.html

  • 色调(Hue):色调表示颜色的基本属性,如红色、蓝色、绿色等。它以角度的形式表示,取值范围通常是 0 到 360 度,对应于色轮上的不同位置。色调值决定了颜色的类型。
  • 饱和度(Saturation):饱和度表示颜色的鲜艳程度或纯度。较高的饱和度表示颜色更鲜艳,而较低的饱和度表示颜色更灰暗或接近无色。饱和度的取值范围通常是 0 到 100%,其中 0% 表示灰色或无色,100% 表示完全饱和的纯色。
  • 亮度(Value):亮度表示颜色的明暗程度。较高的亮度值表示颜色更明亮,而较低的亮度值表示颜色更暗。亮度的取值范围通常是 0 到 100%,其中 0% 表示黑色,100% 表示最大亮度的白色。

到了这里,关于Opencv中inRange函数使用介绍的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • [C++] opencv - imwrite函数介绍和使用场景

    OpenCV 是一个开源的计算机视觉库,它包含了许多用于图像处理和计算机视觉任务的函数。其中,imsave() 函数是 OpenCV 中的一个非常有用的函数,它可以让程序将处理后的图像数据保存到指定的文件中。 使用 imwrite() 函数可以将处理后的图像数据保存到本地文件系统中。例如,

    2024年02月04日
    浏览(43)
  • [C++] opencv - resize函数介绍和使用案例

    C++ OpenCV中的resize函数用于调整图像的大小。它可以根据指定的尺寸和插值方法对图像进行缩放。函数原型如下: 参数说明: src :输入图像,通常为 cv::Mat 类型。 dst :输出图像,与输入图像具有相同的类型。 size :目标图像的尺寸,表示为 (width, height) 。 fx :沿水平轴的缩放因子

    2024年04月11日
    浏览(39)
  • [C++] opencv - cvtColor函数介绍和使用场景

    OpenCV是一个开源的计算机视觉库,提供了许多图像处理和计算机视觉方面的功能。其中,cvtColor函数是OpenCV中非常重要的一个函数,用于将一种颜色空间的图像转换为另一种颜色空间的图像。本文将介绍cvtColor函数的相关知识,包括函数的介绍、函数原型和参数说明、函数使用

    2024年02月02日
    浏览(48)
  • [C++] opencv - copyTo函数介绍和使用案例

    copyTo 函数是OpenCV库中的一个成员函数,用于将一个Mat对象的内容复制到另一个Mat对象中。 函数原型: 参数说明: m: 输出数组,即目标Mat对象,用于存储源Mat对象的内容。 mask: 图像掩膜,用选定的图像作为遮挡,来控制图像处理的区域; 在这个例子中,我们首先读取了一张

    2024年01月18日
    浏览(41)
  • [C++] opencv - drawContours(绘制轮廓)函数介绍和使用场景

    OpenCV中的drawContours函数用于在图像上绘制轮廓。其函数原型如下: 比较复制插入新建 参数说明: image: 输出图像,即绘制轮廓后的图像。 contours: 轮廓集合,每个轮廓由一系列点组成。 contourIdx: 轮廓索引数组,指定要绘制哪些轮廓。如果为NULL,则绘制所有轮廓。 contourC

    2024年01月19日
    浏览(56)
  • [C++] opencv - Mat::convertTo函数介绍和使用场景

    Converts an array to another data type with optional scaling.    该函数主要用于数据类型的相互转换。 The method converts source pixel values to the target data type. saturate_cast is applied at the end to avoid possible overflows: m(x,y)=saturate_castrtype(α(∗this)(x,y)+β)    这是函数底层算法实现公式,了解算法方便我们

    2024年01月18日
    浏览(52)
  • [C++] opencv - HoughCircles(霍夫圆查找)函数介绍和使用场景

    HoughCircles函数用于在灰度图像中使用霍夫变换查找圆。 该函数通过修改霍夫变换来实现,通常可以很好地检测出圆的中心,但可能无法找到正确的半径。可以通过指定半径范围(minRadius和maxRadius)来协助该函数,或者在#HOUGH_GRADIENT方法中将maxRadius设置为负数以仅返回圆心而不进

    2024年02月03日
    浏览(43)
  • 使用OpenCV的cv2.imread函数读取图像介绍

    在计算机视觉和图像处理应用中,读取图像是一个常见的操作。OpenCV是一个广泛使用的图像处理库,它提供了 cv2.imread 函数,用于读取图像。本文将详细介绍如何使用 cv2.imread 函数,包括参数和用法。 首先,确保你已经安装了OpenCV库。你可以使用以下命令来安装OpenCV(如果尚

    2024年02月05日
    浏览(75)
  • 【opencv】颜色映射表操作-applyColorMap()和LUT()函数使用介绍

    来自:ColorMaps in OpenCV。 人眼对颜色的变化更敏感,所以当一张灰度图的细微变化不是很明显时,可以对灰度图重新着色。 opencv提供函数 applyColorMap() 实现这种功能。其内部算法基本是查表法LUT实现,首先构建查找表,然后应用查找表。应用表的过程类似: d s t ( i , j ) = L U

    2024年02月11日
    浏览(38)
  • [C++] opencv - approxPolyDP(多边形拟合)函数介绍和使用场景

    OpenCV中的 approxPolyDP() 函数用于对形状进行逼近,以减少多边形的顶点数,可以用于对图像轮廓点进行多边形拟合。 函数原型如下: 其中, curve 是输入的点集,类型为 InputArray, 可以是 Mat 、 vectorPoint 等; approxCurve是输出的点集,类型为 OutputArray, 也是 Mat 类型; epsilon 是精

    2024年03月14日
    浏览(70)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包