210322阶段三QT事件循环及opencv图像处理

本文详细介绍了QT事件循环机制,包括事件的产生、处理流程和QObject的角色。同时,讲解了OpenCV中如何进行图像处理,如灰度图、二值图转换,以及腐蚀、膨胀和降噪操作,有助于深入理解这两个库的使用。

目录

一、学习的知识点

1.QT事件循环机制

1.1QT是事件驱动的。QT将系统产生的信号(软件中断)转换成QT事件,并且将事件封装成类,所有的事件类都是QEvent派生的,事件的产生和处理就是QT程序的主轴,伴随着整个程序的运行周期。

1.2QT事件由QObject接收,QObject是所有QT类的基类,是QT对象模型的核心。QObject类的三大核心功能之一就是 事件处理。QObject通过event函数调用获取事件,通过继承QObject并重定义event函数实现自定义事件的处理

1.3QT事件处理的流程:事件有别于信号的重要一点,事件是一个类对象具有特定的类型,事件多数情况被分发到一个队列(事件队列)中,队列有时间就不停的将队列中断时间发送给QObject对象,队列为空时就阻塞地等待事件。

1.4调用show函数只是发生了一个事件,这个事件放在队列中,要等程序空闲才能真正显示,或者使用qApp->processevents(),可以立即处理队列中的事件。

2.Opencv图像处理

2.1Mat格式的图片转为灰度图: Mat img,img_new; cvtColor(img,img_new,CV_BGR2GRAY);

2.2灰度图转二值图:threshold(img,img_new,70.0,150.0,THRESH_BINARY); THRESH_BINARY是选择转化的算法,灰度大于参数三时,取值参数四,否则取值0,实现二值化

2.3二值图的腐蚀,扩大黑色部分,使轮廓更平滑,Mat img_erode; Mat elem=getStructuringElement(MORPH_RECT,Size(10,10),Point(-1,-1)); //设置腐蚀参数erode(img_th,img_erode,elem); //腐蚀

2.4 降噪:medianBlur(img_erode,img_erode,3); //第三参数需要为 奇数

2.5 膨胀,扩大白色部分,Mat img_dilate;Mat dilate2=getStructuringElement(MORPH_RECT,Size(5,5));dilate(img_erode,img_dilate,dilate2);

2.6画轮廓

vector< vector<Point> > contours; //存放轮廓数据 原始数据 存在噪点一个轮廓要用到一个vector

//CV_RETR_EXTERNAL 检测外围轮廓CV_CHAIN_APPROX_SIMPLE 把轮廓拐点的左边存起来
findContours(img_dilate,contours,CV_RETR_EXTERNAL,CV
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值