【opencv】NV12转Mat

OpenCV3.4.9

1.编译命令

g++ main.cpp -I /usr/local/include -L/usr/local/lib -lopencv_imgproc -lopencv_core -lopencv_imgcodecs -ldl

2.执行准备

export LD_LIBRARY_PATH=/usr/local/lib

3.代码

#include <iostream>
#include <fstream>
/*opencv*/
#include <opencv2/opencv.hpp>

using namespace std;
using namespace cv;

#define IMAGE_LEN 608256
#define IMAGE_WIDTH 704
#define IMAGE_HEIGHT 576

int main()
{
        ifstream fd_yuv("in.yuv");

        //yuv Mat
        cv::Mat yuv_img(IMAGE_HEIGHT*1.5, IMAGE_WIDTH, CV_8UC1);

        //read file to Mat
        fd_yuv.read((char *)yuv_img.data, IMAGE_LEN);

        //jpg Mat
        cv::Mat jpg_img;
        cv::cvtColor(yuv_img, jpg_img, CV_YUV2RGB_NV12);
        imwrite("out.jpg", jpg_img);

        return 0;
}

4.备注

YUV格式有很多种.
CV_YUV2RGB_NV12只适合NV12.


版权声明:本文为aa82441111原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。