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

}

相关推荐
minhuan3 分钟前
大模型应用:轻量化视觉语言模型(VLM):基于Qwen2-VL多模态模型实践.87
人工智能·语言模型·自然语言处理·qwen2-vl·轻量化vlm模型
MaoziShan12 分钟前
CMU Subword Modeling | 08 Non-Concatenative Morphological Processes
人工智能·机器学习·语言模型·自然语言处理
云深处@26 分钟前
【C++11】特殊类&&单例模式
开发语言·c++
小程故事多_8027 分钟前
RAG,基于字号频率的内容切分算法,非常强
人工智能·算法·aigc
IT 行者27 分钟前
OpenClaw 浏览器自动化测试的那些坑(一):Linux Snap 版本的 Chromium 无法使用托管模式
linux·运维·服务器·人工智能
ADDDDDD_Trouvaille29 分钟前
2026.2.15——OJ83-85题
c++·算法
肾透侧视攻城狮31 分钟前
《掌握 tf.data API:从 Dataset 创建、map/batch/shuffle 操作到预取/缓存优化的完整实战》
人工智能·深度学习·tensorflow·tf.data api·dataset 对象·map/batch/shuff·预取/并行化/缓存机制
大模型任我行34 分钟前
百度:动态偏好选择提升LLM对齐稳定性
人工智能·语言模型·自然语言处理·论文笔记
A尘埃42 分钟前
深度学习框架:Keras
人工智能·深度学习·keras
回眸&啤酒鸭1 小时前
【回眸】AI新鲜事(五)——2026按照自己的理想型培养自己
人工智能