opencv api
一、工具函数
函数 | 描述 |
---|---|
cvCeil() | 近似一个浮点数x到不小于x的最近的整数(向上取整) |
cvFloor() | 近似一个浮点数x到不大于x的最近的整数(向下取整) |
cv::cubeRoot() | 计算一个数的立方根 |
cv::error() | 指示错误并抛出异常 |
CV_Error() | 构造cv::Exception(从固定的字符串)并抛出异常的一个宏 |
CV_Error_() | 构造cv::Exception(从格式化的字符串)并抛出异常的一个宏 |
cv::format() | 以sprintf类似格式创建一个STL字符串 |
cv::getCPUTickCount() | 从内部CPU计时器获得tick计数 |
cv::getNumThreads() | 获得当前Opencv使用的线程数 |
cv::getOptimalDFTSize | 计算要传递给cv::DFT()的数组的最适宜大小 |
cv::getThreadNum() | 获取当前线程的索引 |
cv::getTickCount() | 获取系统的tick计数 |
cv::getTickFrequency() | 获取每秒tick数 |
cvIsInf() | 判断一个浮点数x是否无穷 |
cvIsNaN() | 判断一个浮点数x是否不是一个数 |
cvRound() | 近似一个浮点数x到最近的整数 |
cv::setNumThreads() | |
cv::setUseOptimized() | 开启或关闭优化代码 |
cv::useOptimized() | 指示代码优化的启用 |
二、功能函数
读写图片
Mat imread(const string& filename, int flags = 1);
bool imwrite(const string& filename, InputArray image, const vector<int>& params=vector<int>());
imread()的flag有三种情况:
- flag>0,该函数返回 3 通道图像,如果磁盘上的图像⽂文件是单通道的灰 度图像,则会被强制转为 3 通道;
- flag=0,该函数返回单通道图像,如果磁盘的图像⽂文件是多通道图像,则 会被强制转为单通道;
- flag<0,则函数不对图像进行通道转换。
文件的格式由 filename 参数指定的文件扩展名确定。推荐使用 PNG 文件格 式。BMP 格式是无损格式,但是一般不进行压缩,文件尺寸非常大;JPEG 格式 的文件娇小,但是 JPEG 是有损压缩,会丢失一些信息。PNG 是无损压缩格式, 推荐使用。
并不是所有的 Mat 对象都可以存为图像文件,目前支持的格式只有 8U 类型 的单通道和 3 通道(颜色顺序为 BGR)矩阵;如果需要要保存 16U 格式图像,只 能使用 PNG、JPEG 2000 和 TIFF 格式。如果希望将其他格式的矩阵保存为图像文 件,可以先用 Mat::convertTo()函数或者 cvtColor()函数将矩阵转为可以保存的格 式。
显示图像
void imshow(const String& winname, InputArray mat);
若无namedWindow,只有imshow,显示的图像窗口与图片一样大,无法调整窗口大小。imshow只能显示8位和浮点型的。
void namedWindow(const String& winname, int flags = WINDOW_AUTOSIZE);
WINDOW_FREERATIO参数可以调整窗口大小,默认图像WINDOW_AUTOSIZE显示原图,不能调整大小。
读写视频
OpenCV 2 中提供了两个类来实现视频的读写。读视频的类是 VideoCapture, 写视频的类是 VideoWriter。编解码器 使用四个字符表示,可以是 CV_FOURCC('M','J','P','G')、CV_FOURCC('X','V','I','D')及 CV_FOURCC('D','I','V','X')等。
VideoCapture 既可以从视频文件读取图像,也可以从摄像头读取图像。
色彩转换color space conversions
void cv::cvtColor(InputArray src, OutputArray dst, int code, int dstCn=0);
Converts an image from one color space to another.
dstCn number of channels in the destination image; if the parameter is 0, the number of the channels is derived automatically from src and code.