opencv--可选颜色物体追踪函数

news/2025/2/25 7:56:40

目录

一、函数介绍

1. cv2.createTrackbar()

2. cv2.getTrackbarPos()

3. bitwise_and()

4.cv2.morphologyEx()

5. cv2.GaussianBlur()


一、函数介绍

1. cv2.createTrackbar()

作用:创建一个滑动条

cv2.createTrackbar(Track_name, img, min, max, TrackbarCallback)

- Track_name:滑动条的名字。

- img:滑动条所在画布。

- min:滑动条的最小值。

- max:滑动条的最大值。

- TrackbarCallback:滑动条的回调函数。

2. cv2.getTrackbarPos()

作用:调用回调函数去接收指定滑动条的值。

cv2.getTrackbarPos(Track_name, img)

- Track_name:滑动条的名字。

- img:滑动条所在画布。

函数返回值是滑动条当前所在的位置。

3. bitwise_and()

作用:对二进制数据进行操作,即对图像(灰度图像或彩色图像均可)每个像素值进行二进制操作,1&1=11&0=00&1=00&0=0

bitwise_and(src1, src2, dst=None, mask=None)

参数说明:

 src1src2:为输入图像或标量,标量可以为单个数值或一个四元组

 dst:可选输出变量,如果需要使用非None则要先定义,且其大小与输入变量相同

 mask:图像掩膜,可选参数,为8位单通道的灰度图像,用于指定要更改的输出图像数组的元素,即输出图像像素只有mask对应位置元素不为0的部分才输出,否则该位置像素的所有通道分量都设置为0

返回值为结果图像矩阵,如果dst传入了实参,则返回值与dst对应 实参相同。

4.cv2.morphologyEx()

腐蚀和膨胀是图像形态学运算的基础,将膨胀和腐蚀进行组合就得出开闭运算、梯度、礼帽、黑帽等不同形式的运算:

开运算cv2.MORPH_OPEN:先腐蚀后膨胀--dilate(erode(img))

闭运算cv2.MORPH_CLOSE:先膨胀后腐蚀--erode(dilate(img))

形态学梯度cv2.MORPH_GRADIENT:膨胀图-腐蚀图--dilate(img)-erode(img)

礼帽运算cv2.MORPH_TOPHAT:也叫顶帽运算,原始图像-开运算结果 -- img-open(img)

黑帽运算cv2.MORPH_BLACKHAT: 闭运算结果-原始图像 -- close(img)-img

击中不击中cv2.MORPH_HITMISS: 前景、背景腐蚀运算的交集 -- intersection(erode(img), erode(notimg))

API: cv2.morphologyEx(img, op, kernel, anchor, iterations, borderType)

其中参数op就是上面的几种类型。

参考笔记:

opencv学习笔记(八):图像形态学操作 - 知乎

5. cv2.GaussianBlur()

高斯滤波是一种线性平滑滤波,适用于消除高斯噪声,广泛应用于图像处理的减噪过程。

cv2.GaussianBlur(src, ksize, sigmaX, sigmaY, borderType)-> dst

——src输入图像。

——dst输出图像的大小和类型与src相同。

——ksize高斯内核大小。 ksize.widthksize.height可以不同,但​​它们都必须为正数和奇数,也可以为零,然后根据sigmaXsigmaY计算得出。

——sigmaX X方向上的高斯核标准偏差。

——sigmaY Y方向上的高斯核标准差;如果sigmaY为零,则将其设置为等于sigmaX;如果两个sigmas为零,则分别从ksize.widthksize.height计算得出;为了完全控制结果,而不管将来可能对所有这些语义进行的修改,建议指定所有ksizesigmaXsigmaY 


http://www.niftyadmin.cn/n/215297.html

相关文章

[C++]vector类的模拟实现和相关函数的详解

文章目录架构实现默认构造函数构造函数拷贝构造为什么不能使用memcpy()进行拷贝(浅拷贝问题)析构函数赋值重载[]迭代器begin && end操作函数size() && capacity()push_back()reserve()resize()insert()erase()完整代码架构 首先由于自定…

[Java·算法·困难]LeetCode10. 正则表达式匹配

每天一题,防止痴呆题目示例分析思路1题解1👉️ 力扣原文 题目 给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 . 和 * 的正则表达式匹配。 . 匹配任意单个字符 * 匹配零个或多个前面的那一个元素 所谓匹配,是要涵盖 整…

web性能优化基础了解

一、概述 什么是web性能优化 Web性能网站或应用程序的客观度量和可感知的用户体验。性能优化是指通过各种手段和技术,使前端页面在加载、渲染和交互等方面具有更高的性能,以提升用户体验和网站的整体性能。 为什么要做性能优化 性能优化是为了提高网…

GPT-4博客介绍

文章目录gpt-4Visual inputs(视觉输入)Training process(训练过程)Loss Prediction(损失预测)Steerability(可控性)Limitations(限制)Risks & mitigations(风险和应对措施)gpt-4 在越复杂任务上,GPT4越是强于chat…

[c++17标准库特性之新增STL特性] --- std::filesystem

1 std::filesystem介绍 C++17 标准库中的文件系统库提供了一些函数和类来处理文件和目录。以下是一些常用的方法介绍: 1.1 std::filesystem::path std::filesystem::path 表示文件或目录的路径。我们可以使用字符串或原始字符串字面量来初始化 std::filesystem::path 对象。…

AI大模型突围战

最近,GPT赛道上争议不断,先是GPT-4的问世,用一些亮眼的功能让人类感叹自己是不是要丢工作?紧接着又有一封联名信刷屏,图灵奖得主、AI三巨头之一的约书亚本吉奥、埃隆马斯克等123个业界大佬,呼吁所有人工智能…

nginx的前端部署方式

1. 什么是nginx Nginx是一款高性能的http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。 由俄罗斯的程序设计师Igor Sysoev所开发,官方测试nginx能够支支撑5万并发链接, 并且cpu、内存等资源消耗却非常低&#xff0…

Nestjs实战干货-概况-控制器-Controller

Controller 控制器 控制器负责处理传入的请求并向客户返回响应。 一个控制器的目的是接收应用程序的特定请求。路由机制控制哪个控制器接收哪些请求。通常,每个控制器有一个以上的路由,不同的路由可以执行不同的动作。 为了创建一个基本的控制器&#…