编写c++代码,利用opencv实现rgb转yuv
时间: 2024-10-01 18:05:31 浏览: 34
在C++中使用OpenCV库进行RGB颜色空间转换到YUV(也称为IYUV或YCbCr)是一个常见的任务。以下是一个简单的示例代码片段,展示了如何完成这个转换:
```cpp
#include <opencv2/opencv.hpp>
#include <iostream>
cv::Mat rgb_to_yuv(const cv::Mat& src) {
cv::Mat yuv;
cv::cvtColor(src, yuv, cv::COLOR_BGR2YUV_I420); // BGR to YUV (I420 coding)
return yuv;
}
int main() {
// 假设你有一个BGR图像,比如从摄像头捕获的
cv::Mat bgr_img = ...;
// 转换为YUV
cv::Mat yuv_img = rgb_to_yuv(bgr_img);
if (!yuv_img.empty()) {
std::cout << "RGB to YUV conversion successful.\n";
// 可能你会保存或显示转换后的YUV图像
// cv::imwrite("output_YUV.jpg", yuv_img);
} else {
std::cerr << "Failed to convert RGB to YUV." << std::endl;
}
return 0;
}
```
在这个例子中,`cv::cvtColor()`函数被用于将BGR图像转换为YUV格式。`cv::COLOR_BGR2YUV_I420`是色彩空间转换标志,表示从BGR转换为I420编码的YUV。
阅读全文