当前位置: 首页 > news >正文

OpenCV 图形API(48)颜色空间转换-----将 LUV 颜色空间的图像数据转换为 BGR 颜色空间函数LUV2BGR()

  • 操作系统:ubuntu22.04
  • OpenCV版本:OpenCV4.9
  • IDE:Visual Studio Code
  • 编程语言:C++11

算法描述

将图像从LUV颜色空间转换为BGR颜色空间。
该函数将输入图像从LUV颜色空间转换为BGR。B、G和R通道值的常规范围是0到255。

输出图像必须是8位无符号3通道图像(CV_8UC3)。

cv::gapi::I4202RGB 是 OpenCV G-API 模块中用于将 I420(YUV 4:2:0) 格式的图像数据转换为 RGB 格式的一个函数。G-API(Graph API)是OpenCV中的一个模块,旨在通过定义图像处理操作的高效图形来加速计算机视觉任务,并且可以在不同的后端上运行,如CPU、GPU等。

注意
函数的文本ID是"org.opencv.imgproc.colorconvert.luv2bgr"

函数原型

GMat cv::gapi::LUV2BGR 	
(const GMat &  	src
) 	

参数

  • 参数src - 输入图像:8位无符号3通道图像(CV_8UC3)。

返回值

返回一个新的 GMat 对象,表示从输入的 I420 图像数据转换得到的 RGB 格式的图像数据。

使用场景

当你需要在视频帧处理或图像分析任务中使用基于RGB的颜色空间,但你的输入源提供的是I420格式的数据时,这个函数特别有用。例如,在处理来自摄像头或其他影像设备的数据时,这些设备可能会输出YUV格式的数据,特别是I420格式,因为这种格式有利于压缩和传输。为了进行后续的色彩处理或者显示,你可能需要将其转换为RGB格式。

代码示例

#include <opencv2/gapi.hpp>
#include <opencv2/gapi/core.hpp>
#include <opencv2/opencv.hpp>int main()
{// 假设我们有一个LUV格式的图像cv::Mat luvGBR = cv::imread( "/media/dingxin/data/study/OpenCV/sources/images/Lenna.png", cv::IMREAD_COLOR );cv::Mat luvImg;cv::cvtColor( luvGBR, luvImg, cv::COLOR_BGR2Luv );if ( luvImg.empty() ){std::cerr << "Error: Image not found or unable to load." << std::endl;return -1;}// 如果你的输入图像是其他格式(如BGR),你可以先将其转换为LUVcv::Mat luvMat;cv::cvtColor( luvImg, luvMat, cv::COLOR_BGR2Luv );// 定义G-API图cv::GMat in;auto out = cv::gapi::LUV2BGR( in );cv::GComputation comp( cv::GIn( in ), cv::GOut( out ) );cv::Mat bgrImg;try{// 应用到输入图像并获取输出图像comp.apply( luvMat, bgrImg, cv::compile_args( cv::gapi::kernels() ) );// 显示结果cv::imshow( "LUV image", luvImg );cv::imshow( "BGR image", bgrImg );cv::waitKey();}catch ( const cv::Exception& e ){std::cerr << "OpenCV exception: " << e.what() << std::endl;}catch ( const std::exception& e ){std::cerr << "Error: " << e.what() << std::endl;}return 0;
}

运行结果

在这里插入图片描述

http://www.xdnf.cn/news/67465.html

相关文章:

  • 在Cursor编辑器上部署MCP(Minecraft Coder Pack)完整指南
  • 进程与线程:02 多进程图像
  • 深入理解React高阶组件(HOC):原理、实现与应用实践
  • 如何测试雷达与相机是否时间同步?
  • 高并发内存池项目
  • EMQX学习笔记
  • ECharts散点图-散点图14,附视频讲解与代码下载
  • Vue3 源码解析(六):响应式原理与 reactive
  • 解决go项目构建后不能夸Linux平台的问题
  • JavaScript-ES5 循环中的闭包 “共享变量” 问题
  • 部署本地Dify
  • 智能安全用电系统预防电气线路老化、线路或设备绝缘故障
  • Windows部署FunASR实时语音听写便捷部署教程
  • Python Cookbook-6.6 在代理中托管特殊方法
  • AI重塑网络安全:机遇与威胁并存的“双刃剑”时代
  • CI/CD
  • Servlet上传文件
  • 2025年渗透测试面试题总结-拷打题库10(题目+回答)
  • 软考 中级软件设计师 考点知识点笔记总结 day14 关系代数 数据库完整性约束
  • 计算机是如何工作的(上)
  • 23. git reset
  • 【形式化验证基础】活跃属性Liveness Property和安全性质(Safety Property)介绍
  • 计算机组成与体系结构:内存接口(Memory Interface)
  • 工具:下载vscode .vsix扩展文件及安装的方法
  • 可穿戴设备待机功耗需降至μA级但需保持实时响应(2万字长文深度解析)
  • 小天互连与DeepSeek构建企业智能化新生态
  • iframe下系统访问跨域问题解决办法
  • VTK知识学习(53)- 交互与Widget(四)
  • Unity3D ILRuntime与Scripting Backend整合指南
  • 剪映学习02