Cplusplus
文章平均质量分 71
SeventhBlue
学习再学习!
展开
-
cmake多文件、多文件夹编译(2)
cmake编译文件管理原创 2023-07-13 16:49:17 · 1324 阅读 · 0 评论 -
Data Matrix码的使用
Data Matrix原名Data code,由美国国际资料公司(International Data Matrix, 简称ID Matrix)于1989年发明。Data Matrix又可分为ECC000-140与ECC200两种类型,ECC000-140具有多种不同等级的错误纠正功能,而ECC200则透过Reed-Solomon演算法产生多项式计算出错误纠正码,其尺寸可以依需求印成不同大小,但采用的错误纠正码应与尺寸配合,由于其演算法较为容易,且尺寸较有弹性,故一般以ECC200较为普遍。【百度百科】原创 2022-11-02 11:50:38 · 1787 阅读 · 0 评论 -
各种小功能集二
各种小功能集一。原创 2022-09-13 13:28:29 · 226 阅读 · 0 评论 -
bazel构建项目案例(第三方库,编译成库,运行案例)
使用bazel构建项目,包含如何引入外部库(项目中引入了opencv和编译的tensorflow lite库),如何编译成动态库和静态库,以及如何调用编译好的库。项目根目录的所有文件结构如下图所示。项目的构建由图中红色框起来的文件描述,其中蓝色的方框是生成的静态库和动态库(它们是从其他目录复制过来的).........原创 2022-09-01 14:58:42 · 4802 阅读 · 0 评论 -
c++的json读取操作
使用的开源库是nlohmann / json。后续操作也都是基于该开源库操作。本地json文件如下:{"model_config":{ "model_type":"paddlex", "model_cfg_file":"./models/yolov3/model.yml", "model_key":"", "model_filename":"./models/yolov3/model.pdmodel", "model_params_filename":"./models...原创 2022-05-19 16:46:43 · 4012 阅读 · 0 评论 -
裂缝和缺陷检测
裂缝比如水泥地、陶瓷的裂痕,缺陷比如盘子的缺口等,做的就是这些检测。裂缝检测参考这里,缺陷检测主要使用opencv一个连通域分析函数,如下所示:int cv::connectedComponents ( cv::InputArrayn image, // input 8-bit single-channel (binary) cv::OutputArray labels, // output label map int connectivity = 8, // 4- or 8-原创 2020-12-16 10:13:22 · 1844 阅读 · 0 评论 -
常见题目
一、C++相关二、Python相关2.1 内存管理机制Python是由C语言开发,操作都是基于底层C语言实现。Python中创建每一个对象,内部都会与C语言结构体维护一些值。其中必定含有的有:由PyObject创建,里面含有双向链表/计数器/类型,该类型只有float;由PyVarObject创建,包含PyObject,和容量个数,该类型包括int/str/list/map等等。所以,在创建对象时,每个对象内部至少有四个值:双向链表/ob_refcnt/ob_type。之后会对内存中的数据进原创 2020-08-04 09:46:43 · 243 阅读 · 0 评论 -
windows环境下读取CPU和内存使用率
main.cpp#include "RC.h"int main() { //CPU利用率 unsigned char cpuUseageInfo[18]; unsigned char ramUseageInfo[16]; while (true) { cpuUseageUchar(cpuUseageInfo, false); puts((char*)cpuUseageInfo); RAMUseageInfo(ramUseageInfo, false); puts((cha原创 2020-06-16 17:26:12 · 1012 阅读 · 0 评论 -
各种小功能集一
一、获取本地时间并格式化void gettime(){ struct tm t; //tm结构指针 time_t now; //声明time_t类型变量 time(&now); //获取系统日期和时间 localtime_s(&t, &now); //获取当地日期和时间...原创 2020-04-24 12:27:58 · 833 阅读 · 0 评论 -
Mat类创建二维、三维或四五维矩阵并访问以及opencv矩阵运算
#include <iostream>#include <opencv2/core/core.hpp>#include <opencv2/highgui/highgui.hpp>#include <opencv2/imgproc/imgproc.hpp>using namespace std;using namespace cv;i...原创 2020-04-07 14:29:08 · 12808 阅读 · 6 评论 -
cmake多文件、多文件夹编译(1)
工程目录结构如下:manyFolderCompile3:工程的根目录。bin:会生成的可执行文件的目录,需要把图片放到这个目录。在没有改动“main.cpp”文件中的读取图片的名字情况下,图片的名字只能是“123.jpeg”。build:会进入这个目录执行编译命令。include:存放头文件的目录。lib:生成链接库的目录。src:存放源文件的目录相应文件的内容如下...原创 2020-04-02 12:05:33 · 10874 阅读 · 0 评论 -
Ubuntu16.04下vscode配置调用opencv的C++环境
把vscode吹上天,用起来差点吐血。不管是用在Python上还是c++程序上,体验一个比一个差。说是说vscode轻量级,但是配置运行程序确实重量级。也许只适合大神,菜鸡的我表示用的很难受!!!废话不多说,下面把配置vscode可以调用opencv的c++程序贴出来,重要信息写在配置文件里面了。说明一下,需要安装opencv4.1.0版本,其他版本不保证能运行成功,尤其是4版本以下的。(如果...原创 2020-04-01 19:22:22 · 1916 阅读 · 0 评论 -
在Ubuntu16.04上编译opencv4.1.0-gpu带contrib版本碰到的问题
1.未定义的引用具体的错误如下(没有截图):对‘__cxa_init_primary_exception@CXXABI_1.3.11’未定义的引用对‘std::__exception_ptr::exception_ptr::exception_ptr(void*)@CXXABI_1.3.11’未定义的引用这个问题主要是在cmake时参数选择了如下这个,从查阅的资料来看,它指的是高性...原创 2020-03-30 23:11:49 · 3937 阅读 · 0 评论 -
Ubuntu16.04安装cmake以及编译opencv带上contrib的gpu版本
CMakeList.txt内容和注释:# 大小写不严格区分# cmake verson,指定cmake版本 cmake_minimum_required(VERSION 3.0.0)# set():用来显式的定义变量 set(CMAKE_POSITION_INDEPENDENT_CODE ON) # 添加-fPIC编译,即:装成一个动态库(Linux...原创 2020-03-28 14:59:36 · 3589 阅读 · 0 评论 -
Ubuntu16.04下vscode第一个C++程序以及opencv配置文件
主要是配置文件,以及配置文件参数的意义tasks.json//tasks.json{ // See https://go.microsoft.com/fwlink/?LinkId=733558 // for the documentation about the tasks.json format "version": "2.0.0", "tasks":...原创 2020-03-27 18:46:26 · 629 阅读 · 0 评论 -
opencv的单应性矩阵
主要涉及两个函数。第一个,findHomography计算多个二维点对之间的最优单映射变换矩阵H(3行x3列),使用最小均方误差或者RANSAC方法。函数功能:找到两个平面之间的转换矩阵。Mat cv::findHomography ( InputArray srcPoints, InputArray dstPo...原创 2019-12-26 16:50:14 · 5289 阅读 · 1 评论 -
OpenCV显示中文汉字
OpenCV显示中文汉字,未使用CvxText和FreeType库 采用windows的GDI显示系统的TrueType字体,没有封装,就两个函数,分成了h和cpp文件,可以自己编辑文件名和函数名,亦可以直接将cpp的代码复制到你需要的程序中。putText.h putText.cpp 演示目录OpenCV显示中文汉字,未使用CvxText和FreeType库1...原创 2019-12-23 17:14:28 · 5442 阅读 · 2 评论 -
解决VS2013中出现类似于error C4996: 'sprintf': This function or variable may be unsafe的安全检查错误
用习惯了VS老版本的人当刚使用VS2013的时候可能总遇到类似于这样的错误:error C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See onli...转载 2019-05-25 12:09:53 · 1857 阅读 · 0 评论 -
error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
错误如下:c:\evan\workspace\1\1\netwowkippack.h(50) : error C2146: 语法错误 : 缺少“;”(在标识符“nSourPort”的前面)c:\evan\workspace\1\1\netwowkippack.h(50) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 intc:\evan\...转载 2019-05-20 17:25:25 · 691 阅读 · 0 评论 -
常用的函数:atoi,itoa,atof,_ttoi等
atoi:ASCII to integer,将字符串转换成整形,从数字或正负号开始转换,一直到非数字为止itoa:integer to ASCII--将整形转换成字符串atof:ascii to float--字符串转换成浮点型atol:ascii to long---字符串转换成长整形gcvt:浮点型转换成字符串(四舍五入)strtod:字符串转换成浮点型strtol:字...转载 2019-05-05 20:35:20 · 8097 阅读 · 1 评论 -
用C++实现简易计算器
1. 计算器所接受的语言的语法:program: END: //END表示输入结束 expr_list ENDexpr_list: expression PRINT //PRINT是分号 expression PRINT expr_listexpression: expression + term expressio...原创 2018-11-16 16:55:49 · 6813 阅读 · 7 评论 -
C++基础:cin对象和各种输入方法总结,cin>>、cin.get()、cin.getline()、getline()、gets()、getchar()
在C++中,各种输入方法还是不少的,而且各有所异,本文做一点简要总结,主要涉及如下内容:cin、cin.get()、cin.getline()、getline()、gets()、getchar()。 输入原理简述: 程序的输入都建有一个缓冲区,即输入缓冲区。每次输入过程是这样的,当一次键盘输入结束时会将输入的数据存入输入缓冲区,而cin函数直接从...转载 2018-11-16 22:03:22 · 557 阅读 · 0 评论 -
C++基础:[enter] Ctrl+Z [enter] 问题及"\n"输入输出问题
首先来一段代码,引出问题:#include<iostream>#include<Windows.h>using namespace std;int main(){ char ch; int count = 0; cin.get(ch); while(cin.fail()==false) { cout << ch; ...原创 2018-11-19 22:46:00 · 1838 阅读 · 1 评论 -
C++项目组织示例(多头文件)和命名空间示例
在上篇博客中展示的是单头文件的组织架构,而这篇博客将展示的是每个.cpp文件都有对应的.h文件。即.h文件定义它所提供的功能;.cpp包含.h文件用于实现。或许还需包含其他的.h文件,大项目大程序为了方便和整洁,会为了实现部分所用的interface(书中翻译为界面)放在另外的以_impl.h为后缀的文件里。其中就以parser._impl.h为例,如下图,箭头表示 使用 。...原创 2018-12-04 12:13:28 · 1210 阅读 · 0 评论 -
c++ for_each 的各种用法
引入 先看一段不用for_each 的代码: #include<iostream>#include<vector>#include<algorithm>using namespace std;int main(){ int a[] = { 1, 2, 3, 4}; vector<int> v(a, a+size...转载 2018-11-13 10:30:32 · 5101 阅读 · 0 评论 -
LINK : fatal error LNK1104: 无法打开文件“kernel32.lib”Or LINK : fatal error LNK1104: 无法打开文件“msvcprtd.lib"
刚开始用opencv3.0.0+vs2013好好地,应需要又要使用opencv2.4.9,然后设置环境,最后老是报如下的错:先是 1>LINK : fatal error LNK1104: 无法打开文件“kernel32.lib”后是 1>LINK : fatal error LNK1104: 无法打开文件“msvcprtd.lib”反正根据网上的一些信息自己瞎搞,但是这两...原创 2016-11-30 17:13:53 · 8402 阅读 · 1 评论 -
学习C++程序设计语言中的第10-第10.2.9章节的代码
这篇博客主要是学习C++程序设计语言有关类定义,成员函数,成员变量及运算符重载定义的知识,只是学习它的语法什么的。Date.h文件代码:#include<string>class Date{ int y, m, d; static Date default_date; //mutable bool cache_valid; //10.2.7章节 /...原创 2018-12-05 12:33:05 · 233 阅读 · 0 评论 -
学习C++程序设计语言的第10.3-第10.3.4章节的代码
这篇博客主要是学习C++程序设计语言有关类定义,成员函数,成员变量及运算符重载定义的知识,并没有具体去实现什么,只是学习它的语法什么的。Date.h文件代码:#include<string>#include<iostream>class Date{public: enum Month {jan=1,feb,mar,apr,may,jun,...原创 2018-12-05 16:25:52 · 203 阅读 · 0 评论 -
C++项目组织示例(单头文件)和命名空间示例
这篇博客主要学习的是C++项目组织或者说架构的一个小示例。优化的对象是以前博客中贴出来的用C++实现简易计算器的例子。需要说明的是,从上面提到的计算器小项目版本到现在正在看的计算器小项目版本,其中细节变化还是蛮多的,用术语来说就是代码优化多次或者迭代多次了,有些变量和函数都变了,所以想利用上面提到的版本以真正运行正在看的这版本代码还是有点的难的。具体可以去查看Bjarne Stro...原创 2018-12-03 22:24:03 · 477 阅读 · 0 评论 -
嵌套类和运算符重载
这篇博客主要是学习C++程序设计语言第10章和第11章内容的代码,主要有嵌套类和运算符重载。在编写代码时候也发现很多的问题,顺便也记录一下。 代码文件包括String.h文件,String.cpp文件及main.cpp文件。主要做的就是模仿实现string.h的功能。当然了,功能和效率肯定没法和string相比了。主要涉及三个类和一个结构体。类String是主...原创 2018-12-10 15:46:18 · 414 阅读 · 0 评论 -
C/C++内存分区模型
分区的目标是为了更好的管理,提高效率。就像一个公司一样会分很多的部门。 C++编译器将计算机内存分为代码区和数据区,很显然,代码区就是存放程序代码,而数据区则是存放程序编译和执行过程出现的变量和常量。数据区又分为静态数据区、动态数据区以及常量区,动态数据区包括堆区和栈区。在这里分成如下区域。1.栈区 stack 由编译器自动分配释放,存放...原创 2018-12-17 19:16:32 · 1757 阅读 · 0 评论 -
数组指针和指针数组的区别
1.数组指针(也称行指针)定义:int (*p)[n]; ()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长。也就是说执行p+1时,p要跨过n个整型数据的长度。 如要将二维数组赋给一指针,应这样赋值:int a[3][4];int (*p)[4]; //该语句是定义一个数组指针,指向含4个元素...转载 2018-12-28 11:58:13 · 241 阅读 · 0 评论 -
不使用库函数实现形态学处理(腐蚀和膨胀)(改)
整个程序包含macro.h,Morp.h,Morp.cpp和main.cpp四个文件:1. macro.h:程序的宏定义,支持的腐蚀和膨胀的类型#define SQUARE 0 //正方形#define DISK 1 //圆形2. Morp.h:类的声明#include"opencv2/core/core.hpp"#include"openc...原创 2018-12-24 17:16:47 · 336 阅读 · 0 评论 -
不使用库函数实现形态学处理(腐蚀和膨胀)
这个小程序并不是完全不使用opencv库函数的,图像输入和显示等基本功能还是要使用库函数的。主要实现的是不使用库函数实现腐蚀和膨胀这两个问题。主要的目的是学习它的算法和提高C++代码编程能力。整个程序包含macro.h,Morp.h,Morp.cpp和main.cpp四个文件:1. macro.h:程序的宏定义,支持的腐蚀和膨胀的类型#define SQUARE 0 ...原创 2016-11-20 21:20:07 · 940 阅读 · 0 评论 -
立体视觉小项目
工程链接 在windows7+vs2012+opencv2.4.9调通的。 README.txt================================================================================ MICROSOFT 基础类库 : StereoVision 项目概述===...转载 2018-12-24 17:55:53 · 227 阅读 · 0 评论 -
没有与参数列表匹配的重载函数和传局部变量地址问题
使用map<char*,int,ptr_cmp>没有与参数列表匹配的重载函数问题,以及在随后修改过程中又出现新的问题,即传局部变量指针和引用会导致的问题。1.先看第一个问题吧,没有与参数列表匹配的重载函数,在void f(...)中发生,如下:#include<iostream>#include<map>#include<it...原创 2018-12-25 12:38:07 · 7135 阅读 · 0 评论 -
sizeof()各种类型汇总
我的电脑是64位,但是用vs调试的是32位的。注意:前面是语句,注释后面是结果和解释1.基本类型的sizeof(): sizeof(char) // 1 一般都以这个为基础,为最小的单位,其值为1,其他的sizeof()类型都是以这个为倍数sizeof(bool) // 1sizeof(int) // 4sizeof(long) = sizeof(long in...原创 2018-11-14 18:03:39 · 7536 阅读 · 0 评论