发布时间:2026/8/20 1:21:46
OpenCV计算机视觉开发入门与实践<十三>:图像转换之灰度图、二值图 1.图像转换颜色变换是 imgproc 模块中一个常用的功能。我们生活中大多数看到的彩色图片都是 RGB 类型的但是在进行图像处理时需要用到灰度图、二值图、HSV、HSI 等颜色制式OpenCV 提供了cvtColor()函数来实现这些功能。这个函数用来进行颜色空间的转换随着 OpenCV 版本的升级对于颜色空间种类的支持也越来越多因此涉及不同颜色空间之间的转换比如 RGB 和灰度的互转、RGB 和 HSV六角锥体模型这个模型中颜色的参数分别是色调 H、饱和度 S、明度 V的互转等。cvtColor 函数声明如下voidcvtColor(InputArray src,OutputArray dst,intcode,intdstCn0);其中参数 src 用于输入图像即要进行颜色空间变换的原图像可以是 Mat 类OutputArray dst用于输出图像即进行颜色空间变换后存储的图像也可以是 Mat 类code 表示转换的代码或标识即在此确定将什么制式的图片转换成什么制式的图片dstCn 表示目标图像通道数默认取值为 0如果取值为 0就由 src 和 code 决定。InputArray 和 OutputArray 都是接口类它们可以是 Mat、Mat_、Mat_T, m, n、vector、vectorvector和 vector。函数 cvtColor 的作用是将一个图像从一个颜色空间转换到另一个颜色空间但是从 RGB 向其他类型转换时必须明确指出图像的颜色通道。值得注意的是在 OpenCV 中其默认的颜色制式排列是 BGR 而非 RGB。所以对于 24 位颜色图像来说前 8 位是蓝色中间 8 位是绿色最后8 位是红色。需要注意的是cvtColor()函数不能直接将 RGB 图像转换为二值图像需要借助 threshold 函数。我们常用的颜色空间转换有两种BGR 转为 Gray 和 BGR 转为 HSV。下面来看一个例子将图像转换为灰度图和 HSV。#includeiostream#includeopencv2\imgproc\types_c.h//for CV_RGB2GRAY#includeopencv2/core.hpp#includeopencv2/highgui.hpp#includeopencv2/imgproc.hpp#pragmacomment(lib,opencv_world4140d.lib)//引用引入库usingnamespacestd;usingnamespacecv;intmain(){Mat srcImageimread(1.jpg);//判断图像是否加载成功if(!srcImage.data){cout图像加载失败!endl;returnfalse;}elsecout图像加载成功!endlendl;//显示原图像namedWindow(原图像,WINDOW_AUTOSIZE);imshow(原图像,srcImage);//将图像转换为灰度图采用 CV_前缀Mat grayImage;cvtColor(srcImage,grayImage,CV_RGB2GRAY);//将图像转换为灰度图namedWindow(灰度图,WINDOW_AUTOSIZE);imshow(灰度图,grayImage);//将图像转换为 HSV采用 COLOR_前缀Mat HSVImage;cvtColor(srcImage,HSVImage,COLOR_BGR2HSV);//将图像转换为 HSV 图namedWindow(HSV,WINDOW_AUTOSIZE);imshow(HSV,HSVImage);waitKey(0);return0;}2.CV_BGR2GRAY 和CV_RGB2GRAY 用法区别在 OpenCV 中CV_BGR2GRAY 和 CV_RGB2GRAY 的选择非常简单它取决于你手中的图像数据其通道顺序是 BGR 还是 RGB。简单来说绝大多数 OpenCV 函数如 imread 读取的彩色图默认是 BGR 格式此时应使用 CV_BGR2GRAY。要理解原因我们需要看看它们内部的计算方式以及你的数据是以什么顺序存储的。1工作方式这两种转换最终都将彩色图片转为灰度图但内部处理逻辑是不同的这源于OpenCV对通道顺序的定义。CV_BGR2GRAY它“认为”输入图像的数据是按B(蓝)、G(绿)、R(红) 的顺序存储的。转换时它会按照这个顺序去提取三个通道的值并用一个固定的亮度公式Gray 0.114B 0.587G 0.299*R来计算灰度值。其中绿色分量对亮度的贡献最大这与人的视觉感知相符。CV_RGB2GRAY它则“认为”输入图像的数据是按R(红)、G(绿)、B(蓝) 的顺序存储的。它的计算过程也是去提取“它以为的”R、G、B通道然后套用同一个公式Gray 0.114R 0.587G 0.299*B。2什么时候用哪个选择哪个关键看数据源完全取决于你代码中 src 这个图像的实际通道存储顺序。使用 CV_BGR2GRAY这是最常见的情况。来源用 cv::imread() 不加参数地读取一张彩色图片时OpenCV 默认就会把数据解码成 BGR 顺序存储。一个常见的误区是误以为图片是RGB但其实OpenCV内部处理的通道顺序就是BGR。其他函数很多 OpenCV 的图像处理函数其输出的彩色图像也是 BGR 顺序。使用 CV_RGB2GRAY这种情况比较少见主要发生在你的图像数据来源不是OpenCV标准函数时。来源例如你使用了其他图像库如 Qt 的 QImage或者直接从摄像头原始数据中获取了 RGB 格式的像素数据。在这些情况下你需要确认你的数据确实是按 R, G, B 的顺序存储的。如果选错了会怎样如果你拿一个 BGR 顺序的图片却用了 CV_RGB2GRAYOpenCV 会“误以为”第一个通道是R第二个是G第三个是B。这样一来转换时它会错误地将原本的蓝色和红色通道数据混淆导致最终生成的灰度图像颜色层次错误与正常预期不符。这里有一个相关的接口cv::cvtColor(src, dst, cv::COLOR_BGR2GRAY);。在现代OpenCV版本中CV_前缀的枚举值已逐渐被COLOR_前缀取代但功能完全一致。

相关新闻

2026/8/20 1:21:46

基于压电传感器的智能家居触摸交互系统设计与实现

1. 项目概述:用“触摸”点亮智能家居的另一种可能 如果你玩过Arduino,大概率做过用按钮控制LED灯,或者用红外遥控器开关风扇的项目。这些方案很经典,但总感觉少了点“未来感”和“无感交互”的优雅。今天我想分享一个有点不一样的…

2026/8/20 2:36:49

智能高边开关PROFET:从保险丝到智能节点的车载电源进化

1. 从“保险丝”到“智能开关”:一个被忽视的进化如果你问一个干了十几年的硬件工程师,车上最不起眼但又最要命的器件是什么,很多人可能会说是MCU、是传感器。但在我经手过的无数个车载项目里,真正让我“翻车”次数最多、也最能体…

2026/8/20 2:36:49

蔚来赴美IPO传闻解析:企业融资策略与资本市场博弈

1. 从“赴美IPO”传闻看企业融资的必然性与复杂性最近,关于蔚来汽车可能赴美进行首次公开募股的传闻,在业内和投资者圈子里传得沸沸扬扬。副总裁朱江的出面澄清,让这个事件从一个简单的市场传闻,变成了一个观察企业战略、市场预期…

2026/8/20 2:31:49

基于BLE与5GHz WiFi的实时考勤系统:ESP32网关与低功耗工卡设计

1. 项目概述:一个基于BLE与5GHz WiFi的考勤系统最近在捣鼓一个挺有意思的硬件项目,核心是用蓝牙低功耗(BLE)来做人员签到,然后通过5GHz WiFi把数据实时推送到一个网页仪表盘上。项目代号叫“NU87DK”,听起来…

2026/8/19 4:14:28

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/19 15:09:57

工业传感器与变送器详解:序章 从物理世界到工业数据

序章 从物理世界到工业数据 ——重新认识工业传感器与变送器 工业自动化系统正变得日益复杂。今天的工业现场早已不是简单的控制回路,而是由多层技术共同构成的立体体系:PLC、DCS、SCADA、MES、工业互联网、边缘计算与人工智能。控制系统可以执行复杂算法,工业网络可以实现…

2026/8/20 0:01:41

Cline、Hermes、OpenClaw 都能连:HTTP 型 MCP 客户端全适配

后台被问得最多的一类问题是:“我用的是 Cline / Hermes / OpenClaw,能连察元的 WPS 文档服务吗?” 统一回答:能。而且这个"都能连"值得单独写一篇——不是我们挨个给每个客户端做了适配,而是所有这些客户端…

2026/8/20 0:01:41

46 个文档工具一次看懂:察元AI文档助手 MCP 工具目录速览

把察元AI文档助手接进 Claude Code 之后,我建议的第一件事不是急着下提示词,而是把它的 MCP 工具目录过一遍——46 个工具(MCP 目录版本 0.10.0),乍看吓人,其实按"一份文档的生命周期"分组之后非…

2026/8/18 18:23:10

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/19 4:14:38

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/19 16:39:34

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…