OpenCV HSV色彩分割实战:从代码到结果
需积分: 43 98 浏览量
更新于2024-09-07
2
收藏 2KB TXT 举报
本篇代码是使用OpenCV库进行颜色分割的一个实例,主要展示了如何通过HSV(色度-饱和度-亮度)色彩空间对图像进行处理,以区分特定的颜色范围。OpenCV是一个广泛应用于计算机视觉和机器学习领域的开源库,尤其在图像处理、特征检测和机器识别方面有强大的功能。
首先,代码导入了必要的OpenCV头文件,如`<opencv2/core.hpp>`、`<opencv2/highgui.hpp>`和`<opencv2/imgproc.hpp>`,并使用了`cv`和`std`命名空间。程序的核心部分涉及以下几个步骤:
1. 图像读取:变量`img`用于存储输入图像,而`bgr`则是一个临时变量,用于存储原始的BGR颜色空间图像。
2. HSV图像转换:将`img`转换为HSV色彩空间,存储在`hsv`变量中。HSV颜色模型中,H代表色度(0-179),S代表饱和度(0-255),V代表亮度(0-255),相比于BGR,HSV更适合于颜色的区分。
3. 设置颜色阈值:定义了四个整型变量(`hmin`, `smin`, `vmin`, `hmax`, `smax`, `vmax`)来指定我们想要筛选的特定颜色范围。例如,这里可能设置了某种特定的色调(`hmin`到`hmax`)和饱和度与亮度的区间。
4. 颜色掩码创建:函数`inRange`被调用,它接受HSV图像、一个范围(由上述阈值确定)以及一个输出掩码。如果HSV像素值落在给定范围内,该像素在掩码上将被标记为白色(255),否则为黑色。
5. 颜色填充:遍历`bgr`图像中的每个像素,如果掩码中的相应位置为白色(即在选定颜色范围内),则将该像素的颜色复制到`dst`图像中。
6. 结果显示:使用`imshow`函数显示处理后的`dst`图像,并通过`imwrite`函数保存为名为"HSV_inRange.jpg"的文件,便于后续分析或查看。
7. 回调函数:`callBack`函数是窗口回调函数,当用户对图像进行交互时(如鼠标点击或键盘事件),会触发这个函数,执行颜色填充操作并实时更新显示。
总结来说,这段代码演示了如何使用OpenCV的HSV颜色模型进行颜色选择和图像分割,适用于需要对图像中的特定颜色进行高精度提取和分析的应用场景,如目标检测、物体识别等。通过调整阈值参数,可以灵活地适应不同的颜色选择需求。
2020-08-25 上传
2018-04-28 上传
2024-06-20 上传
2024-02-25 上传
2024-04-28 上传
2014-05-15 上传
2023-02-10 上传
点击了解资源详情
zhenliang_Horn
- 粉丝: 8
- 资源: 6
最新资源
- 基于Python和Opencv的车牌识别系统实现
- 我的代码小部件库:统计、MySQL操作与树结构功能
- React初学者入门指南:快速构建并部署你的第一个应用
- Oddish:夜潜CSGO皮肤,智能爬虫技术解析
- 利用REST HaProxy实现haproxy.cfg配置的HTTP接口化
- LeetCode用例构造实践:CMake和GoogleTest的应用
- 快速搭建vulhub靶场:简化docker-compose与vulhub-master下载
- 天秤座术语表:glossariolibras项目安装与使用指南
- 从Vercel到Firebase的全栈Amazon克隆项目指南
- ANU PK大楼Studio 1的3D声效和Ambisonic技术体验
- C#实现的鼠标事件功能演示
- 掌握DP-10:LeetCode超级掉蛋与爆破气球
- C与SDL开发的游戏如何编译至WebAssembly平台
- CastorDOC开源应用程序:文档管理功能与Alfresco集成
- LeetCode用例构造与计算机科学基础:数据结构与设计模式
- 通过travis-nightly-builder实现自动化API与Rake任务构建