
linux C++
VeraWin
算法工程师
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C++探幽:类的继承
引言使用QT开发界面时公有继承了自己实现的相机类、并且由于界面程序稍微复杂了些,相机类中的一些函数需要重写,使用到了多态。感慨:之前只知道继承、重写别人的类或者函数,没想到有一天终于想到了继承自己写的类,真的会简化编程啊~并且这里承接上一篇方法基类的析构函数声明为虚函数——因为基类的指针指向派生类时,若基类的析构函数不声明为虚函数,在析构时只会调用基类的析构函数而不会调用派生类的虚构函数,从而产生内存泄露;基类中的某些需要重写的函数声明为虚函数。我的项目具体实现相机类的析构函数声明为虚原创 2021-04-23 15:03:31 · 227 阅读 · 0 评论 -
Ubuntu软件自启动说明
引言系统启动时自动运行用户指定的软件,以此减少用户操作,增加用户友好体验。方法假设我们已经拥有了一个可执行程序,在路径path=/home/pipath=/home/pipath=/home/pi下有Cp,一般需要准备两个文件,分别为为Cp配置运行环境的.sh文件、和一个触发自启动的.desktop文件——名字自取即可。.sh文件的内容为:chmod 777 /dev/ttyS4chmod 777 /home/pi/Cp/*. /usr/bin/setqt5env/home/pi/Cp &原创 2021-04-19 09:46:22 · 229 阅读 · 0 评论 -
C++探幽:#if 0(1) #end if
在阅读源代码的时候,时不时会发现#if 0code#end if的写法,刚开始很不理解,以为可运行的代码的某种写法,通过运行简单的程序发现,#if 0中出现的变量不会出现在内存中,而#if 1中的变量会出现在内存中。结合网上的说法,我就浅层次地将其理解为一种注释吧。...原创 2020-12-12 11:40:06 · 629 阅读 · 0 评论 -
C++探幽:内存分配
内存对象的基本概念栈对象栈,一般用于存放局部变量或对象。优势在于:能够在适当的时候自动生成、在适当的时候自动销毁。栈对象的创建(只需要移动栈顶指针)速度比堆对象的创建速度块(需要执行某种空间搜索算法)。缺点:栈空间容量一般较小(1M-2M),体积比较大的对象不适合在栈中分配。而且递归函数最好不适用栈对象,因为随着递归调用深度的增加,所需的栈空间也会线性增加,从而导致栈溢出。int add(int a,int b){return a+b;}int mian(){ int a=2,b=0; i原创 2020-11-19 16:25:07 · 171 阅读 · 0 评论 -
C++探幽:实现一个简单的string类
class myString{public: myString(const char* p=NULL);//普通构造函数 myString(const myString &str);//拷贝构造函数:需要实现深拷贝 ~myString(); myString &operator = (const myString &str);//重载运算符private: char* data=NULL; };myString::myString(const char* p=N原创 2020-11-19 15:01:00 · 217 阅读 · 0 评论 -
C++探幽:malloc/free与new/delete
标准库函数与运算符malloc/free是C++/C 的标准库函数,new/delete是C++的运算符。对于非内部数据类型对象而言,只使用malloc/free无法满足动态对象的要求。对象在创建的同时自动执行构造函数,消亡之前要自动执行析构函数。malloc/free不在编译器控制范围内,不能将构造函数和析构函数强加于malloc、free。malloc/free只申请内存的大小,对象的初始化是需要额外进行的。malloc/free 最需要的注意的就是申请的字节数的大小和指针类型转换。new /d原创 2020-11-19 10:30:53 · 158 阅读 · 0 评论 -
C++探幽:指针与数组的对比
数组要么被建立在静态存储区(如全局数组),要么被建立在栈上(局部数组)。数组名对应着一块内存,而不是指向一块内存,其地址与容量保持不变,只有数组的内容可以改变。指针可以随时指向任意类型的内存块,其特征是可变。因此经常使用指针操作动态内存块,比数组灵活,却也更危险。修改内容char *p="hello";//其实在VS2017里边,该指针不能这样定义,而是const char *p="hello"才不会报错。cout<<p<<endl;所以∗p*p∗p指向常量字符串,而对于原创 2020-11-19 10:05:17 · 221 阅读 · 0 评论 -
C++探幽:指针参数
指针作为返回值不要用return语句返回指向“栈内存”的指针,因为该内存在函数结束时自动消亡。char *GetString(void){ char p[] = "hello world"; return p; // 编译器将提出警告}int main(){ char *str = NULL; str = GetString(); // str 的内容是垃圾(字符串+烫烫烫) cout<< str << endl;}改写成如下示例char *GetStr原创 2020-11-18 20:04:15 · 475 阅读 · 0 评论 -
C++探幽:C++11多线程
pthread与threadC++11中使用thread,C++98 中使用pthread,并且pthread只支持Linux。创建线程#include<thread>//创建线程需要的头文件#include<mutex>//锁的头文件假设有如下两个函数:int number = 0;//全局变量mutex g_lock;//锁int threadProc1(){ lock_guard<mutex> locker(g_lock); for (int原创 2020-11-18 17:04:37 · 189 阅读 · 0 评论 -
QT关于相机、串口掉线(拔掉)重连
记录基本操作,以备不时之需,自己的杂乱笔记,思路应该比较清晰相机掉线判断相机掉线:采集图片出错相机重连尝试:不退出线程,重新打开相机,并将新的变量赋值给线程中一直使用的变量void total_thread::run(){ VideoCapture cap(0); Mat img, result; int thread_stop = param_Cutpp.thread_shutup; int data_wrap = 0; int angle3 = 0;//文档缺角标志 doubl原创 2020-10-29 20:59:57 · 4181 阅读 · 2 评论 -
Ubuntu 安装 libgphoto2.5.25
QT .pro文件的写法INCLUDEPATH+=/usr/local/include/gphoto2INCLUDEPATH+=/usr/local/includeLIBS +=/usr/local/lib/libgphoto2.soLIBS +=/usr/local/lib/libgphoto2_port.so安装步骤查看安装包中的install文档,一步一步安装完成开发开发的话应该主要参考samples文件夹中的代码,其中看懂的包括:枚举相机,单图像采集,以及触发采集等,需要后续消化重原创 2020-10-28 09:55:29 · 928 阅读 · 0 评论 -
C++判断文件夹是否存在
源码来源于网络#include <iostream>#include <string>#include <io.h>using namespace std;bool dirExists(const std::string& dirName_in){ int ftyp = _access(dirName_in.c_str(), 0); if (0 == ftyp) return true; // this is a directory原创 2020-09-08 17:37:27 · 537 阅读 · 0 评论 -
C++统计文件夹中文件个数
代码来源于网络#include<io.h>#include <opencv2/opencv.hpp>#include <iostream>#include <ctime>#include <vector>using namespace std;using namespace cv;void getFiles(string path, vector<string>& files){ intptr_t原创 2020-09-06 17:13:10 · 3421 阅读 · 0 评论 -
交叉编译opencv 3.4.9 虚拟机(Ubuntu18.04)到NanoPi Neo4
sudo apt-get update sudo apt-get install git build-essential linux-libc-devsudo apt-get install cmake cmake-guisudo apt-get install libusb-1.0-0-dev libusb-dev libudev-devsudo apt-get install mpi-default-dev openmpi-bin openmpi-common sudo apt-get in原创 2020-06-03 11:28:14 · 852 阅读 · 0 评论 -
Linux Ubuntu入门:主要的命令(常学常更)
FAST MATCH: fast affine template matchingIntegral image代数矩的快速计算快速模板匹配算法步骤结果解读“FAsT-Match: Fast Affine Template Matching”Integral image本文作者从2001 年人脸识别神作 “Robust Real-time Object Detection” 中提到的图片特征 ...原创 2019-06-17 20:29:57 · 281 阅读 · 0 评论