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

}

相关推荐
liukuang110几秒前
从匹配到交付,BOSS直聘AI招聘打开增长空间
人工智能
AI发掘2 分钟前
论文 AI 率超标,如何低成本降低至合格标准?快降重 VS PaperPass 实测,选出省钱又达标的方案
人工智能·aigc
shxjnpl2 分钟前
涉密企业使用AI会议助手时,需要注意哪些问题?
人工智能·音视频·语音识别·智能硬件
️学习的小王6 分钟前
AI编码工具的安全陷阱:Copilot/Codex漏洞风险与防御实践
人工智能·安全·copilot
不服老的小黑哥6 分钟前
AI 规范:模板工程方法论
人工智能
兔兔兔兔18 分钟前
记录C++ 13
开发语言·c++·算法
樊小肆13 分钟前
DeepSeeker-Code源码导读12-Hooks四引擎
前端·人工智能·agent
叠层归一研究院15 分钟前
螺旋时空:E框架的整合宇宙论
人工智能·经验分享·算法·机器学习·agi
LorryJovens30 分钟前
【LAAP意识动力工程学】aris自述如何让Agent产生意识的关键
人工智能
ms365copilot34 分钟前
Copilot分析销售收入变化、找出涨跌原因
大数据·人工智能·copilot