欢迎来到天天文库
浏览记录
ID:39474983
大小:267.00 KB
页数:12页
时间:2019-07-04
《基础学习笔记之opencv:基本绘图》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、基础学习笔记之opencv(13):基本绘图 本文主要讲讲怎样用opencv画一些基本图形,这些图形包括,直线,圆,椭圆,多边形等。参考资料为opencv自带tutiol及其code。 开发环境:ubuntu12.04+Qt4.8.2+QtCreator2.5+opencv2.4.2 实验功能: 1.单击Drawing1按钮,将会画出atom图形,并且可以看出该图形成的过程,共分5个步骤画,每画完1个部分会自动停留1s,以便观察,然后画下一个部分,直至完成atom图形。 2.单击Drawing2按钮,将会画出rook图形,并且可以看出该图形成的过程,共分3个步
2、骤画,每画完1个部分会自动停留1s,以便观察,然后画下一个部分,直至完成atom图形。 3.单击close按钮,退出程序。 实验说明: 1.QtextEdit除了用append()函数显示图片外,还可以用insertHtml()函数和setPlainText()来显示,用法类似,其中insertHtml()可以用来显示图片和有格式的文字,而setPlainText()只能用来显示无格式的文字。 2.为什么TextBrowser下的append()函数2个连在一起使用时,只有当最后一个append函数运行完后才显示出append的内容呢? 比如说,ui->tex
3、tBrowser->append(“first”);usleep(1000000);//延时1sui->textBrowser->append(“second”);usleep(1000000);ui->textBrowser->append(“third”); 实际运行到这几句代码时,并不是显示完first,延时1s后显示second,再延时1s后显示third.而是直接延时2秒,first,second,third同时显示呢? 而把程序改成在终端输出字符串,用的usleep函数,其结果却正常,能满足我们预先设定的了。即改为下面代码时:cout<<"first"<
4、后,可以用下面的代码(比如说延时1s):QElapsedTimert;t.start();while(t.elapsed()<1000)QcoreApplication::processEvents(); 3.fillPoly函数的第2个参数是指1个指向
5、Point的双指针,因为该函数可以同时填充多个多边形。第3个参数为指向整型的指针,表示每个多边形中顶点的个数。实验结果:画atom图过程之一及其结果:画rook图过程之一及其结果: 实验主要部分代码及注释(附录有工程code下载链接):#include"mainwindow.h"#include"ui_mainwindow.h"//#include//#include#include#includeusingnamespacestd;MainWindow::MainWindow(QW
6、idget*parent):QMainWindow(parent),ui(newUi::MainWindow){ui->setupUi(this);ui->textBrowser->setFixedWidth(W);ui->textBrowser->setFixedHeight(W);}MainWindow::~MainWindow(){deleteui;}voidMainWindow::on_closeButton_clicked(){close();}voidMainWindow::on_drawing1Button_clicked(){/*画图1,资料中称该图为a
7、tom*/img=Mat::zeros(W,W,CV_8UC3);imwrite("../drawing/drawing.jpg",img);ui->textBrowser->insertHtml("");/*下面几句为在Qt中常用的延时函数,这里为延时1s,注意主线程中不要采用sleep()等函数否则会出现意想不到的结果*/QElapsedTimert;t.start();while(t.elapsed()<1000)QCoreApplication::processEven
此文档下载收益归作者所有