HighGUI,可移植的图形工具包
图像文件处理 (Working with Image File)
加载和保存图像,即读写文件
cv::imread(),读取文件
函数原型
cv::Mat cv::imread( const string& filename, // Input filename int flags = cv::IMREAD_COLOR // Flags set how to interpret file );
该函数在图像加载失败时,并不抛出异常,只返回一个空的cv::Mat(cv::Mat::empty()==true)
cv::imwrite(),写文件
函数原型
bool cv::imwrite( const string& filename, // Input filename cv::InputArray image, // Image to write to file const vector<int>& params = vector<int>() // (Optional) for parameterized fmts );
该函数在图像保存成功时,返回一个true,否则返回一个false
图像压缩和解压缩
cv::imread和cv::imwrite都是由多个子模块构成的,可以将子模块单独使用,也可以作为一个整体使用,特别是在内存中对图像进行压缩和解压缩
cv::imencode(),压缩文件
函数原型
void cv::imencode( const string& ext, // Extension specifies codec cv::InputArray img, // Image to be encoded vector<uchar>& buf, // Encoded file bytes go here const vector<int>& params = vector<int>() // (Optional) for parameterized fmts );
cv::imdecode(),解压缩文件
函数原型
cv::Mat cv::imdecode( cv::InputArray buf, // Encoded file bytes are here int flags = cv::IMREAD_COLOR // Flags set how to interpret file );
视频文件处理(Working with Video)
cv::VideoCapture::VideoCapture类对象,读取视频文件
函数原型,依据不同的视频源,调用三种不同的函数创建VideoCapture类对象
cv::VideoCapture::VideoCapture( const string& filename, // Input filename );
cv::VideoCapture::VideoCapture( int device // Video capture device id );
cv::VideoCapture::VideoCapture();
你需要在计算机中安装适当的视频解码器,以成功的读取视频文件
cv::VideoCapture::read(),读取视频帧
函数原型
bool cv::VideoCapture::read( cv::OutputArray image // Image into which to read data );
cv::VideoCapture::operator>>(),读取视频帧
函数原型
cv::VideoCapture& cv::VideoCapture::operator>>( cv::Mat& image // Image into which to read data );
cv::VideoCapture::grab() ,读取视频帧
将当前可用视频读到用户不可见的内存缓冲区,为什么设计成不可见,因为读取的视频是没有加工过的,只是为了快速的读到内存而已
函数原型
bool cv::VideoCapture::grab( void );
cv::VideoCapture::retrieve(),读取视频帧
函数原型
bool cv::VideoCapture::retrieve( cv::OutputArray image, // Image into which to read data int channel = 0 // Used for multihead devices );