参考链接:
FFMPEG 16bit file support by shawndfernandes · Pull Request #12284 · opencv/opencv · GitHub
保存16bit图像注意两点,视频后缀是".avi", Fourcc为,CV_FOURCC('M', 'J', 'P', 'G')。其他与常规8bit视频相同。
using namespace cv;
Mat frame, frame_split[3];
VideoWriter 8_bit_vid,16_bit_vid;
//for lossless, use 'F''F''V''1', for lossy with good compression, //'X''2''6''4'
//For 8bit writing
8_bit_vid.open("8_bit_video.avi",,CV_FOURCC('M', 'J', 'P', 'G'),30,[rows,cols],true);
frame_split[0]= Mat Red_channel([rows,cols],CV8_UC1);
frame_split[1]= Mat Green_channel([rows,cols],CV8_UC1);
frame_split[2]= Mat Blue_channel([rows,cols],CV8_UC1);
merge(frame_split,3,frame);
8_bit_vid.write(frame);
8_bit_vid.release();
//For 16bit writing
16_bit_vid.open("16_bit_video.avi",CV_FOURCC('M', 'J', 'P', 'G'),30,[rows,cols],true);
frame_split[0]= Mat Red_channel([rows,cols],CV16_UC1);
frame_split[1]= Mat Green_channel([rows,cols],CV16_UC1);
frame_split[2]= Mat Blue_channel([rows,cols],CV16_UC1);
merge(frame_split,3,frame);
16_bit_vid.write(frame);
16_bit_vid.release();