OpenCV buffer转cv::Mat

void convertBuf2Mat(void* input_ptr, vx_uint32 width, vx_uint32 height, cv::Mat& frame)

{

// 计算亮度通道和色度通道的大小

size_t y_size = width * height;

size_t uv_size = y_size / 2;

// 创建一个只包含亮度通道的 cv::Mat 对象

cv::Mat y_channel(height, width, CV_8UC1, (unsigned char*)input_ptr);

// 设置 U 通道和 V 通道的数据指针

unsigned char* u_ptr = (unsigned char*)input_ptr + y_size;

unsigned char* v_ptr = u_ptr + uv_size;

// 创建只包含 U 通道和 V 通道的 cv::Mat 对象

cv::Mat u_channel(height / 2, width / 2, CV_8UC1, u_ptr);

cv::Mat v_channel(height / 2, width / 2, CV_8UC1, v_ptr);

// 调整色度通道的大小以匹配亮度通道

cv::resize(u_channel, u_channel, cv::Size(width, height));

cv::resize(v_channel, v_channel, cv::Size(width, height));

// 合并亮度和色度通道,得到 NV12 格式的 cv::Mat

std::vector<cv::Mat> channels = { y_channel, u_channel, v_channel };

cv::merge(channels, frame);

}

相关推荐
火山引擎开发者社区2 小时前
TLS for DeepSeek Harness 可观测实践:从系统总览到会话复盘
人工智能
数字融合4 小时前
透明化地铁线视频孪生综合监控项目技术
大数据·人工智能·virtualenv
鼎艺创新科技5 小时前
不依赖 UE/Unity:我们如何从零搭建一套国产三维 GIS 渲染引擎
人工智能·算法·unity·游戏引擎·三维电子沙盘
十三画者5 小时前
【文献分享】ConfRetro:融合3D构象信息的逆合成预测Transformer框架
人工智能·深度学习·数据挖掘·数据分析·transformer·数据可视化
前沿在线5 小时前
百度文心助手推出任务引擎 2.0,日活用户同比增长 83%,日均对话轮次增长超 2 倍
人工智能·ai·大模型
zandy10115 小时前
AI办公工具选哪个?千问办公、百度搭子、WorkBuddy三款高阶智能体深度拆解
人工智能·ai办公工具
mengpp_1234565 小时前
AIoT平台 vs 普通IoT平台 核心区别
人工智能
canonical_entropy5 小时前
可逆不是逆向运行:DeepSeek Harness 架构的数学本质
人工智能·架构·agent
别动我齐刘海6 小时前
机器人运动控制学习2——基础进阶
c++·人工智能·神经网络·学习·目标检测·机器学习·机器人
冬奇Lab6 小时前
Code Agent 解剖(05):模型怎么知道有哪些工具可以用?Function Calling 如何实现?
人工智能·开源·agent