- 博客(12)
- 资源 (2)
- 收藏
- 关注

原创 Windows下基于openMVG及openMVS的三维重建Qt应用程序
J3D模型重建系统J3DReconstruction基于openMVG+openMVS的三维重建应用(with QT GUI)本应用是基于openMVG和openMVS二次开发的Windows平台应用程序程序为摄影测量影像的三维重建提供解决方案,可将摄影测量的原始影像进行特征匹配重建为三维点云,重建深度图为点云加密,三角网重建,纹理映射,生成纹理模型。......
2020-11-29 23:32:28
5858
39
原创 openCV C++实现视频光斑轮廓及中心动态捕捉
学习openCV,需要动态监测视频中的光斑,并绘制轮廓openCV中的二值化,可以过滤出较大块的高亮区域,测试代码中使用灰度阈值230-255之间来获取并将其轮廓获取,求出轮廓的大小面积,并求拟合椭圆,从而得出光斑的位置和中心,具体实现代码和效果如下:#include <iostream>#include <opencv2/opencv.hpp>#include <opencv2/calib3d/calib3d.hpp>#include <opencv2
2021-03-03 14:52:27
3859
6
原创 ModbusTCP协议通信 C++实现源码举例
因项目需求研究了一下Modbus协议,用C++实现了简单的Modbus协议报文组织Modbus协议允许在TCP连接下实现通信,使用ws2_32这个socket支持库,写法是普遍的网络编程TCP客户端连接写法在Windows环境下,C++的TCP连接发起部分代码:作为主机(客户端),主动连接从机(服务端) WORD version = MAKEWORD(2, 2); WSADATA data; if (SOCKET_ERROR == WSAStartup(version, &data))
2021-03-03 14:20:29
13251
2
原创 C++ Error C2280 尝试引用已删除的函数(二)因std::mutex引起的拷贝
我最近做的项目用到了C++11的多线程库,其中一个类A中有一个类B的成员,而类B的成员中使用到了std::mutex互斥锁,这个互斥锁在B中使用没有任何问题,但是当类B成为一个类A的成员之后,就出现了问题,1>e:\workqt\spotdetect\detectviewer.cpp(5): error C2280: “Detector::Detector(const Detector &)”: 尝试引用已删除的函数1>e:\workqt\spotdetect\detector.h(
2021-01-16 15:32:48
2748
原创 C++ STL各容器迭代器种类及使用原因总结
在C++标准库的所有容器中,STL提供了几种不同种类的迭代器,每一个容器都可以用迭代器来遍历,但是不同容器的内部数据结构是不一样的,所以实际为了保证最高的迭代效率,STL针对不同容器提供的迭代器是不一样的,具体有以下几种:random_access_iterator(随机访问迭代器,可以通过直接偏移量访问(比如it+5即可访问it的后面第五个元素))bidirectional_iterator(双向迭代器,可以通过++ --操作访问前后元素)forward_iterator(单向迭代器,可以通过++访
2020-12-16 20:13:07
1759
原创 C++ 字符判断转换函数和对应ASCII码总结
最近LeetCode刷字符题目中,被ASCII码搞烦了,总结一下这些函数和ASCII码表规律,以备之后查询C++字符判断函数总结备忘判断函数islower(char c) 小写字母isupper(char c) 大写字母isdigit(char c) 数字isalpha(char c) 字母isalnum(char c) 字母或者数字转换函数toupper(char c) 转大写tolower(char c) 转小写字母大小写切换中,ASCII码 小写=大写+32小写字母a-z对应A
2020-11-14 17:50:55
5706
原创 C++11 中的typedef using 中区别
好像就是没有区别有人说模板类不能用typedef嗯,using和typedef都是可以用的C++委员会都说了 using就是为了拓展typedef的,自然已经兼容了typedef的所有情况记之,若有错误欢迎指正
2020-11-14 11:15:06
309
原创 C++ Error C2280 尝试引用已删除的函数
学习C++的右值引用的时候,发现一个错误1>e:\work\jutiltest\jutiltest\main.cpp(88): error C2280: “MyString::MyString(const MyString &)”: 尝试引用已删除的函数1>e:\work\jutiltest\jutiltest\main.cpp(72): note: 编译器已在此处生成“MyString::MyString”1>e:\work\jutiltest\jutiltest\main
2020-11-14 11:13:30
18695
2
原创 C++ RTTI学习小结
C++提供了运行时类型检测(Run-Time Type Identification)来在运行期获得对象的实际派生类型在实际的运用上,可以通过不同的派生类转换基类引用统一操作(如传参)等,节省函数重载次数如类Base 类Deri : public BaseDeri d;Base& b = d;通过使用一个基类引用派生类,之后使用基类引用即可通过typeid来获取run-time type如:typeid(b).name() 实际输出为“class Deri”或是用指针:Deri
2020-11-14 11:11:14
189
原创 虚函数表和内存对齐问题
最近学习socket网络编程,被字节对齐这个奇怪的问题恶心到了一波我的自定义网络数据包是一个header类,里面有两个intmsvc编译器下的int,无论是x86还是x64都是4字节没错那么这个Header类的大小,应该是8字节吧,我一开始是这么想的,但是发现。。。TM的居然是12字节,让我百思不得其解。突然一看,有个虚析构函数,应该是多了4字节的虚函数表?什么表4字节啊?哦后来学习一下,虚函数表其实是vtbl ptr,一个指针而已,4字节,合情合理那行吧,我就照12字节的情况写,然后服务器挂
2020-11-14 11:09:17
279
原创 AWS服务器socket编程中sockaddr不能直接填公网IP
如题,若在bind中传入的sockaddr中的s_addr是当前服务器的公网IP类似于这样sin.sin_addr.s_addr = inet_addr(“12.13.14.15”);会bind失败解决方案:将公网IP改为服务器运营商内网IP(其实根据机房不同也会不一样,我阿里云的不需要,但是AWS服务器需要用内网IP)sin.sin_addr.s_addr = inet_addr(“172.30.40.50”);即可绑定成功,但这样仅仅只是服务端绑定套接字时用客户端connect时仍需使用公网
2020-11-14 11:07:41
433
原创 C风格字符串学习小结
C语言中的字符串以”字符数组char[]”或”指向字符串第一个字符的指针char*“来表达那么具体在内存上的数据结构是什么样的呢?假设我定义一个 char[5] c1 = {‘a’,’b’,’c’,’d’,’e’};那么在计算机中内存中以图解表达为这样:此时只是一个简单的字符数组形式,调用各个成员也非常简单,用下标访问即可cout<<c1[0] 即输出acout<<(void*)&c1[0] 即取第一个字符a的地址操作很简单。。。而C语言中另一个方式为”指
2020-11-14 11:05:48
145
J3D模型重建系统 2.3
2020-11-29
OpenGL三维地形模拟
2020-11-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人