一、图像
(1)图像的载入 imread()函数
Mat imread(const string& filename, int flags=1)
- 参数1:要载入的图片路径名
- 参数2:指定一个加载图像的颜色类型
- flags > 0 返回一个3通道的彩色图像
- flags = 0 返回灰度图像
- flags < 0 返回含Alpha通道的加载图像
- flags = 2|4 返回无损的源图像
(2)图像的显示 imshow()函数
Mat imshow(const string& winname, InputArray mat)
- 参数1:要显示的窗口标识名称
- 参数2:要显示的图像
- flags > 0 返回一个3通道的彩色图像
- flags = 0 返回灰度图像
- flags < 0 返回含Alpha通道的加载图像
- flags = 2|4 返回无损的源图像
(3)输出图像到文件 imwrite()函数
要在显示窗口之前就用到窗口名时(如指定滑动条依附到某个窗口上)调用这个函数:
bool imwrite(const string& winname, InputArrar img, const vector<int>& params=vector<int>())
- 参数1:要写入的文件名(带后缀),可保存的文件拓展名和imread中可以读取的图像拓展名一致
- 参数2:Mat类型的图像数据
- 参数3:特定格式保存的参数编码
- JPEG格式:表示0-100的图像质量(CV_IMWRITE_JPEG_QUALITY),默认95
- PNG格式:表示0-9的压缩级别(CV_IMWRITE_PNG_COMPRESSOPM),值越大->尺寸越小+压缩更久,默认3
- PPM/ PGM/ PBM格式:表示0/1的二进制格式标志(CV_IMWRITE_PXM_BINARY),默认1
(4)创建窗口 namedWindow()函数
要在显示窗口之前就用到窗口名时(如指定滑动条依附到某个窗口上)调用这个函数:
Mat namedWindow(const string& winname, int flags=WINDOW_AUTOSIZE)
- 参数1:窗口名称
- 参数2:窗口的标识
- flags = WINDOW_NORMAL 用户可以改变窗口大小
- flags = WINDOW_AUTOSIZE 窗口大小自动调整以适应所显示的图像,用户不能手动改变窗口大小 (默认值)
- flags = WINDOW_OPENGL 窗口创建时支持OpenGL
二、滑动条
(1)创建 createTrackbar()函数
int createTrackbar(const string& trackbarname,const string& winname, int* value, int count, TrackbarCallback onChange=0, void* userdate=0 )
- 参数1:轨迹条的名字
- 参数2:窗口的名字
- 参数3:滑块的位置
- 参数4:滑块可以达到的最大位置的值
- 参数5:指向回调函数的指针(每次滑块位置改变时回调) void (int, void* 参数6)
- 参数6:传给回调函数的数据
(2)获取当前轨迹条的位置: getTrackbarPos()函数
int getTrackbarPos(const string& trackbarname,const string& winname)
- 参数1:轨迹条的名字
- 参数2:父窗口的名字
三、鼠标
鼠标回调函数 setMouseCallback()
void setMouseCallback(const string& winname, MouseCallback onMouse, void* userdate=0)
- 参数1:窗口的名字
- 参数2:指向回调函数的指针(每次鼠标事件触发时回调) void (int event, int x, int y, int flags, void* param)
- event :EVENT_+变量之一 ,有:EVENT_MOUSEMOVE、EVENT_LBUTTONDOWN、EVENT_LBUTTONUP等
- x、y:鼠标指针在图像坐标系中的坐标值
- flag:EVENT_FLAG的组合
- param:传递到SetMouseCallback函数调用的参数
3. 参数3:传递到回调函数的数据