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

}

相关推荐
小海豚儿3 分钟前
不是所有 Workflow,都值得升级成 Graph
人工智能·ai编程
X54先生(人文科技)6 分钟前
Yuri演唱会碳硅协同思维推演备忘录
人工智能·深度学习·知识图谱·零知识证明
Coffeeee18 分钟前
claude-video 一个让你的Agent拥有看视频能力的Skill
android·人工智能·aigc
知几蜗牛21 分钟前
AI会聊天却不会改3D模型?从Pascal 1.0看懂MCP工具调用
人工智能
知几蜗牛22 分钟前
AI写代码开始像带团队:Qwen Code补上工作流控制台
人工智能
知几蜗牛24 分钟前
AI任务一多就堵车:问题可能不在模型速度
人工智能
潜心一志26 分钟前
HALCON软件——数据结构
学习·计算机视觉
啾啾Fun27 分钟前
【AI Coding】5-Pi Agent Harness:一个极简终端编码Harness的解构
人工智能·microsoft·ai agent·claude code·ai coding
桂云网络OSG28 分钟前
桂花AI引擎,广西本土自研的企业级 Agent 编排引擎发布:不聊参数,聊工程落地
人工智能
WX _ jishuwu199029 分钟前
esmfold gpu模式 批量预测蛋白三级结构实况记录 - 供参考
人工智能·ubuntu·三代测序·亚细胞定位,·deeploc·protcompv9