opencv-cvtColor图像制式转换
我们生活中大多数看到的彩色图片都是RGB类型,但是在进行图像处理时,需要用到灰度图、二值图、HSV、HSI等颜色制式,opencv提供了cvtColor()函数来实现这些功能
cv::Mat src(8, 9, CV_8UC3, cv::Scalar(10,20,30));//图像制式转换 cv::Mat dst; cv::cvtColor(src, dst, cv::COLOR_BGR2BGRA);//图像制式转换 /*参数1:原矩阵 * 参数2:目标矩阵 * 参数3:转换的代码或标识,即在此确定将什么制式的图片转换成什么制式的图片,具体代码看下面图 * 参数4-可选:目标图像通道数,如果取值为0-默认,则由src和code决定 */
参数3:转换的代码或标识
cv::COLOR_BGR2GRAY 转成灰色图
COLOR_BGR2GRAY的原理:GRAY = B * 0.114 + G * 0.587 + R * 0.299
cv::Mat M(5, 4, CV_8UC3,cv::Scalar(50, 150, 250)); std::cerr << M<< std::endl; cv::Mat gray; cvtColor( M, gray, cv::COLOR_BGR2GRAY );//转成灰色图 std::cerr << gray<< std::endl;
COLOR_GRAY2BGR
原理: R = G = B = GRAY; A = 0;
而R,G,B相等时,图像会显示为灰值,不相等时颜色会偏向于较大的基色
cv::COLOR_BGR2HSV 转换成HSV
HSV 原本取值范围分别是 0-360, 0-1, 0-1;
但是为了匹配目标数据类型 OpenCV 将每个通道的取值范围都做了修改,于是就变成了 0-180, 0-255, 0-255,并且同时解释道:为了适应 8bit 0-255 的取值范围,将 hue 通道 0-360 的取值范围做了减半处理,这就是为什么 OpenCV 中 hue 通道的取值范围是0-180
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
2020-10-11 Qt中写自己的动态连接库
2020-10-11 qt--硬件序列号