【opencv】YUV420P转Mat

OpenCV3.4.9

1.编译命令

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

2.代码

#include 
#include 
/*opencv*/
#include 

using namespace std;
using namespace cv;

#define IMAGE_LEN 3110400
#define IMAGE_WIDTH 1920
#define IMAGE_HEIGHT 1080

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_YUV420p2RGB);
	imwrite("out.jpg", jpg_img);

	return 0;
}

3.备注

YUV格式有很多种.
CV_YUV420p2RGB只适合YUV420P.

你可能感兴趣的:(OpenCV,opencv)