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

}

相关推荐
蓝速科技1 分钟前
蓝速科技 AI 数字人部署与交互实战指南
人工智能·科技·交互
雪隐4 分钟前
个人电脑玩AI-03让5060 Ti给你打工——paddleOCR
人工智能·后端
Coffeeee9 分钟前
Codachi — 藏在 Claude Code 状态栏里的电子宠物
人工智能·程序员·claude
张某布响丸辣12 分钟前
Spring AI 极简入门:Java 开发者快速上手 AI 开发
java·人工智能·spring·springai
Deepoch20 分钟前
VLA多模态架构加持 采摘机器人实现精细化智能采收
人工智能·机器人·开发板·具身模型·deepoc·采摘
橘子星21 分钟前
基于 Vite 的多模态生图前端工程实践
前端·javascript·人工智能
谁似人间西林客22 分钟前
工业AI原生企业是什么?制造业智能化升级的新路径
大数据·人工智能·ai-native
段一凡-华北理工大学24 分钟前
LangChain框架在高炉炼铁智能化领域的应用~系列文章09:工具调用Tool — 让AI学会操作高炉仪表盘
网络·人工智能·架构·langchain·高炉炼铁·高炉智能化·高炉智能体
工业胶粘剂技术24 分钟前
K-1306双组份丙烯酸结构胶技术白皮书:TDS全参数解析、核壳增韧机理与高端制造选型指南
大数据·人工智能·制造
FL162386312926 分钟前
国内快递面单识别检测数据集VOC+YOLO格式422张6类别
人工智能·yolo·机器学习