OpenCV图像载入、显示和输出到文件以及滑块的使用
图像载入
imread()函数
1 | Mat imread(const string& filename, int flags = 1); |
第一个参数为文件名
第二个参数为载入标识
- flags > 0 返回一个 3 通道的彩色图像
- flags = 0 返回灰度图像
- flags < 0 返回包含 Alpha 通道的加载图像
- 若要载入最真实无损的源图像,可 flags = 2 || flags = 4
imshow()函数
1 | void imshow(const string& winname, InputArray mat); |
- 第一个参数:const string& 类型的 winname,填需要显示的窗口标识名称。
- 第二个参数:InputArray 类型的 mat,填写要显示的图像
namedWindow 函数
void namedWindow(const string& winname, int flags=WINDOW_AUTOSIZE)
第一个参数,const string&类型的 name,填写被用做窗口的标识符的窗口名称。
第二个参数,int 类型的 flags,窗口的标识,默认为 WINDOW_AUTOSIZE,还可以填如下几种值:
- WINDOW_NORMAL,用户可以改变窗口的大小
- WINDOW_AUTOSIZE,窗口大小会自动调整以适应所显示的图像。并且用户不能手动改变改变窗口的大小
- WINDOW_OPENGL,窗口创建的时候回支持 OpenGL。
可以调用 destroyWindow()或者 destroyAllWindows()函数来关闭窗口,并取消之前分配的与窗口相关的所有内存空间。
addWeighted 函数
1 | void addWeighted(InputArray src1, double alpha, InputArray src2, double beta, double gamma, OutputArray dst, int dtype=-1) |
六个参数分别是
- 输入图片 1
- 融合比例
- 图片 2
- 融合比例
- 偏差
- 输出图片
createTrackbar 函数
1 | CV_EXPORTS int createTrackbar(const string& trackbarname, |
六个参数如下
- const string&类型的 trackbarname,轨迹条的名字,用来代表轨迹条
- const string&类型的 winname,窗口的名字,代表轨迹条所依附的窗口
- int* 类型的 value,一个指向整形的指针,表示滑块的位置。创建时,滑块的初始位置就是该变量当前的值。
- int 类型的 count,表示滑块可以达到的最大位置的值。滑块最小位置的值始终为 0.
- TrackbarCallback 类型的 onChange,它有默认值 0.这是一个指向回调函数的指针,每次滑块位置改变时,这个函数都会进行回调。并且这个函数的原型必须为 void function(int , void* ); 其中第一个参数是轨迹条的位置,第二个参数是用户数据(参数六)。如果回调是 NULL 指针,则表示没有回调函数的调用,仅第三个参数 value 有变化。
- void* 类型的 userdata,默认值 0.这个参数是用户传给回调函数的数据,用来处理轨迹条事件。如果使用的第三个参数 value 实参是全局变量的话,完全可以不去管这个 userdata 参数。
getTrackbarPos 函数
1 | int getTrackbarPos(const string& trackbarname, const string& winname); |
- const string& 类型的 trackbarname,表示轨迹条的名字
- const string& 类型的 winname,表示轨迹条的父窗口名称
鼠标操作 setMouseCallback
该函数的作用是为指定窗口设置鼠标回调函数
1 | void setMouseCallback(const string& winname, MouseCallback onMouse, void* userdata=0 ) |
- const string&类型的 winname,窗口名字。
- MouseCallback 类型的 onMouse,指定窗口里每次鼠标事件发生的时候,被调用的函数指针。这个函数的原型的大概形式为 void Foo(int event, int x, int y, int flags, void* param)。其中 event 是 CV_EVENT 变量之一,x 和 y 是鼠标指针在图像坐标系(需要注意,不是窗口坐标系)中的坐标值,flags 是 EVENT_FLAG 的组合,param 是用户定义的传递到 SetMouseCallback 函数调用的参数。
- void*类型的 userdata,用户定义的传递到回调函数的参数,默认值 0。
本文作者 : HeoLis
原文链接 : https://ishero.net/OpenCV%E5%9B%BE%E5%83%8F%E8%BD%BD%E5%85%A5%E3%80%81%E6%98%BE%E7%A4%BA%E5%92%8C%E8%BE%93%E5%87%BA%E5%88%B0%E6%96%87%E4%BB%B6%E4%BB%A5%E5%8F%8A%E6%BB%91%E5%9D%97%E7%9A%84%E4%BD%BF%E7%94%A8.html
版权声明 : 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!
学习、记录、分享、获得