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);

}

相关推荐
搬砖的前端8 分钟前
AI编辑器开源主模型搭配本地模型辅助对标GPT5.2/GPT5.4/Claude4.6(前端开发专属)
人工智能·开源·claude·mcp·trae·qwen3.6·ops4.6
handler019 分钟前
从源码到二进制:深度拆解 Linux 下 C 程序的编译与链接全流程
linux·c语言·开发语言·c++·笔记·学习
Python私教40 分钟前
Hermes Agent 安全加固与生态扩展:2026-04-23 更新解析
人工智能
饼干哥哥41 分钟前
Kimi K2.6 干成了Claude Design国产版,一句话生成电影级的动态品牌网站
人工智能
t***5441 小时前
如何在Dev-C++中使用Clang编译器
开发语言·c++
肖有米XTKF86461 小时前
带货者精品优选模式系统的平台解析
人工智能·信息可视化·团队开发·csdn开发云
天天进步20151 小时前
打破沙盒限制:OpenWork 如何通过权限模型实现安全的系统级调用?
人工智能·安全
xcbrand1 小时前
政府事业机构品牌策划公司找哪家
大数据·人工智能·python
骥龙1 小时前
第十篇:合规与未来展望——构建AI智能体安全标准
人工智能·安全
薛定e的猫咪1 小时前
AI 辅助科研工具全景指南:计算机与金融领域(2025-2026)
人工智能·金融·ai编程·ai写作