OpenCV3(二) HighGUI图形用户界面初步

本文详细介绍了OpenCV3的HighGUI模块,包括图像的载入、显示、输出,以及滑动条和鼠标操作。重点讲解了imread()、imshow()、imwrite()、namedWindow()、createTrackbar()和setMouseCallback()等函数的使用方法,帮助读者掌握OpenCV3的图形用户界面操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、图像

(1)图像的载入 imread()函数

Mat imread(const string& filename, int flags=1)
  1. 参数1:要载入的图片路径名
  2. 参数2:指定一个加载图像的颜色类型
  • flags > 0 返回一个3通道的彩色图像
  • flags = 0 返回灰度图像
  • flags < 0 返回含Alpha通道的加载图像
  • flags = 2|4 返回无损的源图像

(2)图像的显示 imshow()函数

Mat imshow(const string& winname, InputArray mat)
  1.   参数1:要显示的窗口标识名称
  2.   参数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.   参数1:要写入的文件名(带后缀),可保存的文件拓展名和imread中可以读取的图像拓展名一致
  2.   参数2:Mat类型的图像数据
  3.   参数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.   参数1:窗口名称
  2.   参数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. 参数1:轨迹条的名字
  2. 参数2:窗口的名字
  3. 参数3:滑块的位置
  4. 参数4:滑块可以达到的最大位置的值
  5. 参数5:指向回调函数的指针(每次滑块位置改变时回调) void (int, void* 参数6)
  6. 参数6:传给回调函数的数据

(2)获取当前轨迹条的位置: getTrackbarPos()函数

int getTrackbarPos(const string& trackbarname,const string& winname)
  1. 参数1:轨迹条的名字
  2. 参数2:父窗口的名字

三、鼠标

鼠标回调函数 setMouseCallback()

void setMouseCallback(const string& winname, MouseCallback onMouse, void* userdate=0)
  1. 参数1:窗口的名字
  2. 参数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:传递到回调函数的数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值