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 分钟前
AI+行业赋能,到底什么才算落地?——一个差旅差标项目的深度自省
人工智能
不会是要长脑子了吧13 分钟前
ChatGPT 网页端报 “Model not found“
人工智能·chatgpt
史努比的蓝色皮肤23 分钟前
从 ChatGPT 到 Agent :AI 发展脉络
人工智能·chatgpt
kyriewen25 分钟前
我扒了 npm 三年数据:AI 没把依赖变胖,是把包变多了
前端·人工智能·程序员
面包狗AI4S29 分钟前
ChatGPT/Codex Windows:本地桌面端应用离线包安装与免安装启动方法(无需管理员权限)
人工智能·windows·ai·chatgpt
龙粤GEO30 分钟前
RAG检索机制如何影响AI引用?一次SaaS品牌GEO优化实战复盘
人工智能
编码小哥32 分钟前
YOLO26深度解析:为边缘计算而生的新一代实时视觉模型
人工智能·边缘计算
前端.火鸡39 分钟前
Embedding:机器是怎么“理解“语义的
人工智能·embedding
AI语宙漫游指南39 分钟前
Opus 5.5 那种代码动画,国产模型加个 Skill 也能做?
人工智能·agent
Moono14541 分钟前
一文搞懂API网关和Ingress区别:MAI Gateway vs 主流方案横评
人工智能