- 博客(13)
- 问答 (6)
- 收藏
- 关注
原创 QT使用openg离屏渲染到纹理并存到opencv的mat中
负责opengl绘制的控件是openglwidget,不能把FBO和其附件的设置放在initalizeGL函数里执行,只能在里面gen,配置需要放在paintGL函数中。另外opengl的纹理有4字节对齐的,直接从FBO的纹理附件读取数据到mat时会导致图像有奇怪的歪斜和灰度。解决这个问题的方法是在调用glGetTexImage之前使用glPixelStorei(GL_PACK_ALIGNMENT,1)进行设置。...
2021-09-30 10:35:57
392
原创 opengl问题记录
使用顶点属性(调用完glEnableVertexAttribArray函数)之后一定要记得释放(在glDraw*命令后要调用glDisableVertexAttribArray释放对应的属性),否则的话绘制别的顶点时,如果后面绘制的数据量很大,会出现前后数据的内存交叠导致访问越界而崩溃。这有可能是opengl内部机制,猜测是前面顶点和后续顶点是在GPU的同一个位置,如果前面顶点占据的缓存如果不disable,后面顶点还是在相同位置进行访问,当后面顶点数远大于前面顶点数时,相同位置没有开辟足够的缓存,导致
2021-07-29 10:59:11
127
1
原创 VAO的使用注意事项
VAO,VBO,EBO必须gen、bind放在一起,不能在一个函数里gen,在另一个函数里bind数据。可以在初始化的时候bind无效的数据,当想要渲染的数据获得的时候再重新bind而不用gen了,但是首次的gen后面必须紧跟bind设置数据。...
2021-07-05 11:21:28
625
1
原创 opengl颜色不插值方法
颜色作为顶点的数据上传到顶点着色器,设置顶点着色器的一个输出为flat out vec3 color,然后在片段着色器中定义输入flat in vec3 color,使fragcolor=vec4(color,1.0)。按索引绘制时,绘制的三角形颜色为该三角形最后一个索引对应的点的颜色...
2021-06-28 16:31:15
361
原创 QT中使用原生opengl函数
跟着learnopengl网站学习的opengl,其使用的是glfw创建上下文,glad提供gl函数的地址。想在QT中仍然使用这一套流程,只是用QT的openglwidget代替glfw创建上下文,然后用glew提供gl函数的地址。在重写openglwidget类及initialize\paint\resize时,一开始是把glew的初始化和调用的gl函数(glbindvertex、gldrawelemnts等)直接写在这三个函数中了,界面都启动不起来,直接崩溃。后来在网上找了一堆资料,忘了在哪看的了,就抱
2021-06-23 21:57:24
939
1
原创 Eigen库使用记录
Eigen库提供动态大小的矩阵,但是如果后续想要对矩阵进行赋值运行时会崩溃,解决办法是在矩阵定义时使用如下方式对其初始化。Eigen::MatrixXd C=Eigen::MatrixXd::Random(m,n);矩阵C为m行n列,后续赋值不会崩溃...
2019-04-27 10:10:18
211
原创 SLAM十四讲里的问题
系统:ubuntu18.04 LTS问题:先编译了g2o,后来意识到libsuitesparse没装,于是sudo apt-get install libsuitesparse但是在ch7里的程序make过程中出错——undefined reference to `g2o::csparse_extension::cs_cholsolsymb(cs_di_sparse const*, dou...
2018-09-15 23:33:34
2089
原创 QT无标题栏最大化按钮
用ismaximized函数判断有问题,在底部缩放了窗口后需要点两次最大化按钮才能最大化。经过网上搜索解决了问题,感谢广大网友,代码记录如下:QDesktopWidget *desktopWidget=QApplication::desktop();QRect desktop=desktopWidget->availableGeometry();if(this->geome...
2018-09-01 11:09:04
641
原创 QT+VS2017问题
在VS2017下编译好QT项目后,运行时程序crashed,ig9icd64.dll访问0xFFFF...位置出错。经过网上搜索,该dll为英特尔核显驱动,遂更新之,亲测成功。
2018-08-20 15:58:20
1290
原创 C++condition_variable与unique_lock的使用体会
std::mutex mt;std::condition_variable cv;int shareData = 0;bool ready = false;bool ismain = false;int main(){ auto thread1 = [](int a) { std::unique_lock<std::mutex> lk(mt)...
2018-08-10 19:31:30
1743
原创 QT--opengl
编译环境VS2017+QT使用glutSolidSphere函数在QOpenglWidget里绘制球体会出错,目前只是弃用glut函数,改用纯opengl的三角形画的球。
2018-08-03 19:50:06
364
原创 QT 信号槽
使用C++11的bind对函数进行包装,可在非QT派生类中使用QT的方法和信号槽机制。但是如果被包装的函数在子线程中发射信号的话,对应的connect函数第五个参数设成阻塞的队列模式,在我遇到的问题中是可用的。...
2018-08-01 14:44:25
204
1
原创 C++学习笔记(1)
指针的阴影在学习C语言时,教师在课堂上讲的指针知识基本忘完,唯一记住的一点就是指针是一个危险的东东,好了,从此就对指针产生了心理阴影,到现在在使用指针时心里还犯嘀咕,时常感到无从下手,特别是在使用函数时,传递指针与传递值的联系与区别还有一些模糊。通过阅读《Effective C++》,现有如下体会,不仅是指针,还包括引用、函数形参等理解:1.在调用函数时,实参与形参之间执行了类似“
2016-02-25 21:39:36
218
空空如也
mfc与opencv,OpenGL等库的结合
2015-12-01
看过opencv附带的tutorial,但是还是没找到形态学操作的模块
2015-05-03
opencv中的imread函数问题
2015-04-13
opencv显示图像问题,下述代码有错吗?
2015-04-06
数字图像处理的概念-关于邻接
2015-03-24
opencv里main函数参数问题
2015-03-13
TA创建的收藏夹 TA关注的收藏夹
TA关注的人