C++
Christo3
在心上用功,于事上磨练。
专注于图像算法,在人工智能期刊neurocomputing发表论文一篇,申请5篇国家发明专利,已授权3项。
持续学习,保持谦卑,保持空杯心态。
展开
-
VS2019 一个奇怪的编译报错
VS2019 一个奇怪的编译报错。原创 2024-08-07 11:09:27 · 151 阅读 · 0 评论 -
Linux 复制或者移动超过20k文件的命令
Linux 复制超过20k文件的命令原创 2023-07-17 16:15:37 · 222 阅读 · 0 评论 -
windows平台下vector search算法caiss部署
windows平台下vector search算法caiss部署原创 2023-05-19 11:55:02 · 168 阅读 · 0 评论 -
yolov5-obb 旋转目标检测从训练到部署
yolov5-obb 旋转目标检测从训练到部署原创 2023-04-23 14:18:46 · 2156 阅读 · 2 评论 -
ubuntu下将类封装成.so文件并调用详细过程
ubuntu下将类封装成.so文件并调用详细过程原创 2023-02-24 10:46:53 · 707 阅读 · 0 评论 -
将openpose中的结果keypoint string转为float 数组
将openpose中的结果keypoint string转为float 数组原创 2023-02-17 11:06:58 · 116 阅读 · 0 评论 -
一种简洁的dll封装方法
一种简洁的dll封装方法原创 2023-02-11 09:02:27 · 398 阅读 · 0 评论 -
通过FTP获取某个目录下的子文件夹或者文件
通过FTP获取某个目录下的子文件夹或者文件原创 2022-11-03 13:25:30 · 1547 阅读 · 0 评论 -
error LNK2001: 无法解析的外部符号 __imp_InternetOpenA
error LNK2001: 无法解析的外部符号 __imp_InternetOpenA原创 2022-11-01 16:37:22 · 486 阅读 · 0 评论 -
ifstream seekg( ) read( )文本操作
// Test1.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。//#include <iostream>#include <fstream>using namespace std;int main(){ ifstream fs("1.txt");//123456789 fs.seekg(0, ios_base::cur); char c; fs >> c; cout <<原创 2022-05-31 14:39:47 · 429 阅读 · 0 评论 -
ubuntu 类封装之Cmakelist探索
1. 前言windows下的类封装是使用VS封装成dll,跟ubuntu下封装成.so有很大的不同,今天就介绍一下在ubuntu下如何将类封装成.so文件,并进行调用。2. 实践1.建立工程目录├── Generate_lib│ ├── build│ ├── CMakeLists.txt│ └── libhello│ ├── HKCapture.cpp│ └── HKCapture.hpp└── use_lib ├── build原创 2022-05-21 17:55:35 · 594 阅读 · 0 评论 -
ubuntu 使用opencv 获取海康网络摄像头视频流
1. 前言之前在windows平台下使用opencv获取海康网络摄像头的视频流,但是不管怎么设置都无法登录摄像头,导致无法获取摄像头的视频流,但是换到ubuntu又正常了,主要是设置rtsp的格式,然后调用opencv的获取视频流的接口就行了。2. 实践#include <opencv2/opencv.hpp>#include <string>#include "HKCapture.hpp"using namespace cv;using namespace std;原创 2022-05-21 16:45:37 · 1798 阅读 · 0 评论 -
ubuntu vscode配置opencv环境
下载安装包编译opencvlaunch.json文件(左侧带小虫子的按钮)debug--open configuration--c++(GDB/LLDB)task.json文件快捷键ctrl+shift+p打开命令行,输入Tasks: Run task,会出现如下提示:No task to run found. configure tasks...回车,然后依次选择如下:Create tasks.json file from templateOthers Exampl..原创 2022-05-20 14:52:13 · 3066 阅读 · 0 评论 -
opencv 三通道图像转为单通道图像
// Test.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <opencv.hpp>#include <string>using namespace cv;using namespace std;int main(){ string path = "D:\\temp\\label\\image3.png"; Mat src = imread(path); Mat src8bit = Mat::ze原创 2022-03-16 15:32:46 · 6170 阅读 · 0 评论 -
C++ 两个vector<int>合并
将两个vector首尾合并为一个vector vector<int> laneLabel, roadLabel, label; label.insert(label.end(), roadLabel.begin(), roadLabel.end()); label.insert(label.end(), laneLabel.begin(), laneLabel.end());原创 2022-03-15 09:48:18 · 4939 阅读 · 0 评论 -
C2398 元素“1”: 从“double”转换到“float”需要收缩转换
原来binary_threshold_ratio = std::vector<float>{1.7, 1.7};改为binary_threshold_ratio = std::vector<float>{1.7f, 1.7f};原创 2022-03-04 15:59:50 · 2206 阅读 · 0 评论 -
奇葩报错之返回值为 -1073741515 (0xc0000135) ‘未找到依赖 dll‘
背景原本工程配置的opencv3.0,但是opencv3.0与windows.h会产生冲突报“ACCESS_MASK”的错误,无奈便配置opencv2413报错消失,但是编译能通过但出现了 未找到依赖 dll的错误,折腾半天原来是两个原因:opencv的bin文件的环境变量没有配置重启VS2015...原创 2022-03-02 11:18:28 · 7332 阅读 · 1 评论 -
txt文本操作
// cutSample.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <opencv.hpp>#include <string>#include <iostream>#include <fstream>#include <ctime>#include <cstdlib>#include <Windows.h>using namespace std原创 2022-02-25 16:55:22 · 449 阅读 · 0 评论 -
mkdir -p的用法
用法:mkdir [选项] 目录...若目录不是已经存在则创建目录。长选项必须用的参数在使用短选项时也是必须的。m, --mode=模式 设定权限<模式> (类似 chmod),而不是 rwxrwxrwx 减 umaskp, --parents 需要时创建上层目录,如目录早已存在则不当作错误v, --verbose 每次创建新目录都显示信息Z, --context=CONTEXT (SELinux) set security context to CONTEXT原创 2022-01-11 10:56:44 · 45837 阅读 · 0 评论 -
特别记录下最隐蔽的坑
如果ubuntu系统下的C++代码移植到用VS编译时,出现结构体成员变量调用报错或者.size( )调用也报错的奇葩错误时,有可能不是代码的语法错误,而是代码的编码字体导致的。解决方法:VS15 -> 文件 ->高级保存选项->设置合适的字体...原创 2021-12-28 16:54:50 · 469 阅读 · 0 评论 -
OpenCV调用摄像头的videoCapture类用法
这篇博文写的不错,可参考:opencv学习—VideoCapture 类基础知识原创 2021-12-27 15:13:51 · 1663 阅读 · 0 评论 -
基于C++ 多态,多重继承以及虚基类的简易员工信息管理系统示例详解
1,前言很多人都知道C++有三大特性继承,封装和多态,其中多态又是依靠虚函数的设计进行实现,即通过父类指针调用子类对象的成员而实现多态,那关于这三大特性具体如何运用,今天就来818。假设在此之前你已经了解了以下基础内容:C++虚函数实现多态的原理机制C++类对象的内存布局C++类继承的基础知识C++虚基类的基本用法2,需求分析假设我们现在有这样一个需求:一个小型公司的人员信息管理系统某小型公司,主要有四类人员:经理、技术人员、销售经理和推销员。现在,需要存储这些人员的姓名、编号、级别、原创 2021-11-19 17:08:44 · 1715 阅读 · 0 评论 -
C++ this指针调整
#include "stdafx.h"#include <iostream>#include <vector>#include <algorithm>#include <map>using namespace std;class A{public: char a; A() { printf("A::A()的this地址: %p\n", this); } void funA() { printf("A::funA()的thi原创 2021-10-30 13:34:07 · 274 阅读 · 0 评论 -
C++ 类对象的内存空间大小浅析
一个空的类的内存空间大小#include "stdafx.h"#include <iostream>#include <vector>#include <algorithm>#include <map>using namespace std;class Base{public:};int _tmain(int argc, _TCHAR* argv[]){ Base b; int size = sizeof(b); cout.原创 2021-10-29 15:57:27 · 1043 阅读 · 0 评论 -
C++ 使用内联函数实现结构体按结构体某成员大小排序
#include "stdafx.h"#include <iostream>#include <vector>#include <algorithm>using namespace std;struct information{ int a; int b; int c; int d; information() { a = 0; b = 1; c = 2; d = 3; }};inline bool compareIfo原创 2021-10-25 16:33:09 · 291 阅读 · 0 评论 -
C++ ——虚函数实现多态的原理
// virtualClass.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <iostream>using namespace std;class Base{public: virtual void f(){ cout << "Base::f()" << endl; }; void g(){ cout << "Base::g()" << endl; }; void h(原创 2021-10-24 08:37:20 · 1190 阅读 · 0 评论 -
C++ 智能指针
文章目录前言1,aoto_ptr2,unique_ptr3,share_ptr4, weak_ptr前言如果在程序中使用new从堆分配内存,等到不再需要时,应使用delete将其释放,C++引入了智能指针auto_ptr,以帮助自动完成这个过程,但是aoto_ptr也有其局限性,因此从Boost库中又引入了三种智能指针unique_ptr shared_ptr weak_ptr。1,aoto_ptr// ConsoleApplication1.cpp : 定义控制台应用程序的入口点。//#in原创 2021-10-15 10:12:18 · 336 阅读 · 0 评论 -
数据结构——深度优先搜索算法DFS
1,前言第一次接触深度优先搜索算法,看了大概的思路能够理解,但是一看代码就看的云里雾里,觉得十分复杂,但是当仔细深入的一点一点的分析代码时,再回过头看其实这个算法也不算是很复杂,只是自己第一次接触,还无法领会到这种思维的真正含义罢了。通过这件事也反映出一些东西,有时遇到一个问题或者难题,保持一个平和的心态十分的重要的,这种平和的心态在于对于一个不适应的问题,能够继续保持一种探索精神,一点一点的去推进,一个点一个点的去突破,而不是产生一种畏惧的心理,通过做题也能体现出一些个人的品质。2,深度优先搜索算法原创 2021-10-08 14:19:30 · 416 阅读 · 0 评论 -
删除指定文件路径下的所有文件夹
#define _AFXDLL#include <io.h>#include <iostream>#include <vector>#include <string>#include <afx.h>using namespace std;vector<string> getFolderList(const std::string &path){ std::vector<std::string>原创 2021-08-07 11:15:18 · 412 阅读 · 0 评论 -
严重性 代码 说明 项目 文件 行 错误 C2365 “nsRoadRecognition”: 重定义;以前的定义是“命名空间”
背景在做一个简单的工程封装的时候,出现了很多莫名其妙的报错,报错内容如下:解决办法经过反复的排查最后发现,是头文件重定义了,需要在头文件中加一句#pragma once防止重定义导致的报错。...原创 2021-07-07 09:16:08 · 755 阅读 · 0 评论 -
typedf(*f)(int x)的理解
定义了一个自定义数据类型f,f类型的变量有以下定义:它是一个指向函数的指针,所指向的函数有一个int类型的参数(int x的作用),返回值类型也是int类型(typedef后面的int的作用)追问:如果是int (*f)(int x),那肯定是定义了一个函数指针,前面还有一个typedef不是要起别名吗?是不是给void 起(*f)(int x)的别名啊?就像typedef int * aaa一样,也就说aaa就相当于int*。回答:注意第一句:“定义了一个自定义数据类型f”typ..转载 2021-06-01 11:37:06 · 340 阅读 · 0 评论 -
是否忘记了向源中添加“#include “stdafx.h“”?
问题描述:当在项目中添加.cpp和.h文件编译时出现了这样的报错信息。错误 373 error C1010: 在查找预编译头时遇到意外的文件结尾。是否忘记了向源中添加“#include "stdafx.h"”?解决办法:在解决方案资源管理器中,右击相应的.cpp文件,点击“属性”在左侧配置属性中,点开“C/C++”,单击“预编译头”更改右侧第一行的“创建/使用预编译头”,把选项从“使用预编译头(/Yu)”改成“不使用预编译头”https://blog.csdn.net/cindywry原创 2021-05-28 15:45:20 · 724 阅读 · 0 评论 -
C++ txt文件的读写操作
int CrossValide(const stInputParams& param){ string barcodeI = param.strBarcode + to_string(Corner); ofstream inputFile; inputFile.open("D:\\Save\\Release\\Config.txt", ios::out | std::ios::app); inputFile << barcodeI; //写入barcodeI数据 inp原创 2021-05-25 20:06:26 · 126 阅读 · 0 评论 -
error MSB8031: Building an MFC project for a non-Unicode character set is deprecated
错误 1 error MSB8031: Building an MFC project for a non-Unicode character set is deprecated. You must change the project property to Unicode or download an additional library. See http://go.microsoft.com/fwlink/p/?LinkId=286820 for more information. C:\Prog.原创 2021-05-14 14:58:39 · 888 阅读 · 0 评论 -
VS2013编写图片搜索小工具
文章目录前言1. 实现过程2. 代码编译运行总结:前言前段时间看到客户需要经常通过结果图的条码来找对应的原图,如果图片比较多,这个过程应该是比较枯燥的,因为他们首先要打开结果图片然后复制结果图文件名中的条码,然后再到原图的文件中通过条码来查找对应条码的原图,可想而知如果这个过程要重复100次,这感觉一定不怎么好,而且很容易出错,所以当时就想着能不能帮他们写一个小工具去自动找,只需要配置好图片的路径就可以了。1. 实现过程step 1: 新建一个dll工程,然后编写一个readImg类,并导出st原创 2021-04-11 12:17:18 · 314 阅读 · 0 评论 -
yolov5部署之dll封装并调用的方法
文章目录前言1. VS2015新建一个dll项目前言前面讲过yolov5的环境配置,源码测试,以及使用TensorRT进行推理加速,但是有时候为了让模型部署在移动端,需要将模型封装成一个动态链接库dll,从而再任意的移动端无需配置环境即可运行,并且通过读取dll方便软件的其他模块进行调用。1. VS2015新建一个dll项目......原创 2021-04-01 20:57:18 · 22934 阅读 · 55 评论 -
错误 C4430 缺少类型说明符 - 假定为 int
文章目录问题描述解决方法问题描述严重性 代码 说明 项目 文件 行错误 C4430 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int yolov5 c:\users\administrator\desktop\vs3013\yolov5\yolov5\yolov5\yolov5.h 41解决方法检查.h中的宏定义是否缺失或者有误...原创 2021-03-31 17:09:18 · 5058 阅读 · 0 评论 -
VS2015封装yolov5之报错问题总结
目录前言1. 问题描述问题1问题2前言在用VS2015封装yolov5时,由于涉及到TensorRT,CUDA,以及OpenCV的依赖,配置过程还是比较繁琐的,今天就总结一下,在配置环境过程中遇到的一些问题及其解决办法。1. 问题描述问题1LNK2001 无法解析的外部符号 "public: __cdecl nvinfer1::YoloPluginCreator::YoloPluginCreator(void)" (??0YoloPluginCreator@nvinfer1@@QEAA@XZ)原创 2021-03-15 11:46:52 · 1623 阅读 · 5 评论 -
VS2013项目加载失败解决方法
目录前言1. VS加载项目失败2. 解决方法前言之前经常遇到过工程打开,项目无法加载的情况,通常的报错都是找不到对应的属性表,这时候通常是需要我们在本地新建一个报错提示的属性表,让项目可以正常加载然后再配置自己的属性表方可正常使用工程,今天发现了一个更加方便的新方法,以后就不用这么麻烦了。1. VS加载项目失败报错提示如下:C:\Users\Administrator\Desktop\Python\GY_Scratch_Project_BackUp\TRT_YoloV5\TRT_YoloV5\T原创 2021-03-14 22:05:08 · 3272 阅读 · 0 评论 -
私有类封装为DLL的方法
前言 前段时间学习了一种抽象类的封装方法,今天来试一试私有类的封装方法,之前没了解到一块知识的时候,觉得封装的过程太复杂了,要关联好几个文件和函数,通过这几天的仔细研究,了解了它背后的原理机制,其实发现还挺好玩的,原来代码还能这样玩。 基础知识 1,基类,私有类的概念2,DLL的导入导出的基本概念3,DLL装载以及函数访问的基本方法 实践 step1 新建dll工程 step 2 声明头文件 // 下列 ifdef 块是创建使从 DLL 导..原创 2021-02-18 19:38:59 · 1829 阅读 · 1 评论