![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
文章平均质量分 51
岙野小白菜
时刻提醒:多思考!!
展开
-
C++ 访问和权限问题
C++访问权限原创 2022-07-03 21:15:57 · 374 阅读 · 0 评论 -
OpenCV - 3.4.13 附加依赖项
Debug x86opencv_calib3d3413d.libopencv_core3413d.libopencv_dnn3413d.libopencv_features2d3413d.libopencv_flann3413d.libopencv_highgui3413d.libopencv_imgcodecs3413d.libopencv_imgproc3413d.libopencv_ml3413d.libopencv_objdetect3413d.libopencv_photo3原创 2021-04-10 20:59:00 · 668 阅读 · 2 评论 -
读取RGB
#include <iostream>using namespace std;#include <sstream>#include <iostream>#include <fstream>#include <algorithm>#include <cstring> #include<opencv2/imgproc/imgproc.hpp>#include<opencv2/core/core.hpp&g原创 2021-01-20 11:24:40 · 397 阅读 · 0 评论 -
OpenCV 调用 USB 摄像头
测试代码#include <opencv2\opencv.hpp>using namespace cv;using namespace std;int main(){ VideoCapture cap(0); Mat frame; cap >> frame; while (true) { imshow("读取视频", frame); cap >> frame; waitKey(10); } return 0;}...原创 2020-11-30 15:35:08 · 3031 阅读 · 0 评论 -
OpenCV 使用多边形将轮廓包围学习笔记
返回外部矩形边界计算并返回指定点集最外面(up-right)的矩形边界Rect boundingRect(InputArray points) //参数为输入的 std::vector 或 Mat 二维点集寻找最小包围矩形对于给定的2D点集,寻找可旋转的最小面积的包围矩形RotatedRect minAreaRect(InputArray points) //参数为输入的 std::vector 或 Mat 二维点集寻找最小包围圆形利用一种迭代算法,对于给定的2D点集,寻找面积最小的可包围原创 2020-11-11 22:50:52 · 303 阅读 · 0 评论 -
OpenCV 边缘检测学习笔记
Canny 边缘检测#include <opencv2\opencv.hpp>#include <opencv2\imgproc\imgproc.hpp>#include <opencv2\imgproc\imgproc.hpp>using namespace cv;int main(){ Mat src = imread("girl.jpg"); Mat tmpImage, dstImage1; tmpImage = src; imshow("【原始原创 2020-10-10 11:05:12 · 177 阅读 · 0 评论 -
OpenCV 调整图片大小学习笔记
尺寸调整:resize() 函数#include <opencv2\opencv.hpp>#include <opencv2\imgproc\imgproc.hpp>using namespace cv;int main(){ Mat srcImage = imread("girl.jpg"); Mat tmpImage, dstImage1, dstImage2; tmpImage = srcImage; imshow("【原始图】", srcImage);原创 2020-10-10 09:19:37 · 514 阅读 · 0 评论 -
OpenCV 离散傅里叶变换在图像处理中的应用学习笔记
傅里叶变换的物理意义傅里叶原理:任何连续测量的时序或信号,都可以表示为不同频率的正弦波信号的无限叠加图像傅里叶变换的物理意义对一张图像使用傅里叶变换就是将它分解成正弦和余弦两部分,将图像从空间域转换到频域在图像处理中,频域反应图像在空域灰度变化剧烈程度,也就是图像灰度的变化速度,也就是图像梯度大小图像的频率是表征图像中灰度变化剧烈程度的指标,是灰度在平面空间上的梯度设 f 是一个能量有限的模拟信号,其傅里叶变换表示的就是 f 谱,从数学意义上是将一个函数转换为一系列周期函数来处理, 从物理意原创 2020-10-09 16:50:46 · 740 阅读 · 0 评论 -
OpenCV 访问图像中的像素学习笔记
用指针访问像素#include "opencv2\core\core.hpp"#include "opencv2\highgui\highgui.hpp"#include <iostream>using namespace std;using namespace cv;void colorReduce(Mat& inputImage, Mat& outputImage, int div);int main(){ //创建原始图并显示 Mat srcImage原创 2020-10-09 13:18:14 · 101 阅读 · 0 评论 -
OpenCV 数据结构与基本绘图学习笔记
基础图像容器 MatMat 结构的使用OpenCV 函数中输出图像的内存分配是自动完成的(如果不特别指定的话)使用OpenCV 的 C++ 接口时不需要考虑内存释放问题赋值运算符和拷贝构造函数(构造函数)只复制信息头使用函数 clone() 或者 copyTo() 来复制一幅图像的矩阵...原创 2020-10-08 10:35:07 · 110 阅读 · 0 评论 -
OpenCV 命名空间学习笔记
写在开头历经重重阻难,OpenCV环境终于于北京时间2020.10.07凌晨12:36配置成功,感谢东晓的睿智头颅!在这充满纪念意义的一天,让我们开始第一章的学习[狗头]标配头文件#include <opencv2\core\core.hpp>#include <opencv2\highgui\highgui.hpp>using namespace cv;Mat 类简析Mat 类是用于保存图像以及其他矩阵数据的数据结构,默认情况下其尺寸为0定义一个Mat 类对象,可原创 2020-10-08 09:21:06 · 949 阅读 · 1 评论 -
C++应用 职工管理系统
1. 管理系统需求职工管理系统可以用来管理公司内所有员工的信息本教程住哟啊利用 C++ 来实现一个基于多态的职工管理系统公司中职工分为三类:普通员工、经理、老板,显示信息时,需要显示职工编号、职工姓名、职工岗位、以及职责普通员工职责:完成经理交给的任务经理职责:完成老板交给的任务,并下发任务给员工老板职责:管理公司所有事物管理系统中需要实现的功能如下:退出管理程序:退出当前管理系统增加职工信息:实现批量添加职工信息功能,将信息录入到文件中,职工信息为:职工编号、姓名、部门编号显示职工信原创 2020-09-23 12:45:13 · 391 阅读 · 3 评论 -
C++ 文件操作学习(文本文件、二进制文件)
文件操作程序运行时产生的数据都属于临时数据,程序一旦运行结束都会被释放通过文件可以将数据持久化C++ 中对文件操作需要包含头文件 < fstream >文件类型分为两种:文本文件: 文件以文本的 ASCII 码形式存储在计算机中二进制文件: 文件以文本的二进制形式存储在计算机中,用户一般不能直接读懂它们操作文件的三大类:ofstream:写操作(o - out)ifstream :读操作(i - in)fstream:读写操作5.1 文本文件5.1.1 写文件原创 2020-08-29 20:35:17 · 1229 阅读 · 0 评论 -
C++ 静态类和静态成员深入学习总结笔记
类的静态成员1. static关键字static,C语言中有2种用法:static修饰局部变量和全局变量,含义完全不同static,C++中扩展了第3种用法:静态类、静态成员,含义和前2种完全不同原创 2020-08-29 19:12:27 · 423 阅读 · 0 评论 -
C++ 运算符重载深入学习总结笔记
运算符重载引入1. 从函数重载说起函数重载是在一定作用域内,多个相同名称但不同参数列表的函数重载编译时由编译器根据实际调用时给的实参情况来判定本次实际用哪个函数, 这个过程叫重载决策重载函数本质上就是多个独立函数, 重载机制在编译时发生,运行时不参与函数重载的意义就是避免我们胡乱起名,方便编写类库覆盖所有可能操作,是一种语法糖2. 什么是运算符重载什么是运算符?譬如 + - * / % 等算术运算符和 > < == != 等关系运算符就是典型的可重载运算符(但不是所有的运算符原创 2020-08-21 23:41:44 · 809 阅读 · 0 评论 -
C++ 多态深入学习总结笔记
多态和虚函数1. 通过案例理解多态案例:父类Animal,2个子类Dog和Cat,实现speak方法未使用虚函数 virtual 声明main.h 文件class Animal {public: void speak(void);};class Dog :public Animal {public: void speak(void);};class Cat :public Animal {public: void speak(void);};main.c 文件v原创 2020-08-21 14:30:56 · 418 阅读 · 0 评论 -
C++ 重载、重定义、覆盖概念对比区别
overload,重载同一个类里面的多个方法,函数名相同但参数列表不同redifining,重定义,隐藏 继承中子类再次实现父类中同名方法然后把父类方法隐藏掉override,覆盖,重写继承中子类去实现父类中同名virtual方法然后实现多态特性细节区分:父类中是否有 virtual...原创 2020-08-21 11:41:17 · 154 阅读 · 0 评论 -
C++ 类的成员初始化深入学习总结笔记
类的成员初始化Person::Person(string myname) :name(myname) //相当于注释第一行写法{ //this->name = name; //构造对象后,同时对对象中的name属性进行初始化 cout << "userdefined constructor" << endl; this->p = new int(55);}string s1 = "lin";Person * zhangsan = new Person(s原创 2020-08-18 20:11:45 · 92 阅读 · 0 评论 -
C++ 内存管理深入学习总结笔记(详细)
C++内存管理原创 2020-08-14 23:08:38 · 338 阅读 · 0 评论 -
C++ 类和对象学习 —— 多态
多态4.7.1 多态的基本概念多态分为两类静态多态:函数重载和运算符重载属于静态多态,复用函数名动态多态:派生类和虚函数实现运行时多态静态多态和动态多态区别:静态多态的函数地址早绑定 - 编译阶段确定函数地址动态多态的函数地址晚绑定 - 运行阶段确定函数地址#include <iostream>#include <string>using namespace std;//动物类class Animal{public: //虚函数 virtual原创 2020-08-13 11:47:16 · 220 阅读 · 0 评论 -
C++ 类和对象学习 —— 继承
1.6 继承利用继承技术,可以减少重复代码1.6.1 继承的基本语法普通实现#include <iostream>#include <string>using namespace std;//普通实现页面// Java 页面class Java{public: void header() { cout << "首页、公开课、登陆、注册……(公共头部)" << endl; } void footer() { cout &l原创 2020-08-12 17:57:15 · 206 阅读 · 0 评论 -
C++ 类和对象学习 —— 运算符重载
1.5 运算符重载运算符重载概念:对已有的运算符重新进行定义,赋予其另一种功能,以适应不同的数据类型1.5.1 加号运算符重载作用:实现两个自定义数据类型相加的运算#include <iostream>#include <string>using namespace std;//加号运算符重载class Person{public: ////1. 成员函数重载 + 号 Person operator+(Person &p) { Person te原创 2020-08-12 12:31:26 · 188 阅读 · 0 评论 -
C++ 类和对象学习 —— 友元
1.4 友元生活中你的家有客厅(Public),有你的卧室(Private)客厅所有来的客人都可以进去,但是你的卧室是私有的,也就是说只有你能进去但是,你也可以允许你的好闺蜜好基友进去在程序里,有些私有属性也想让类外特殊的一些函数或者类进行访问,就需要用到友元的技术友元的目的就是让一个函数或者类访问另一个类中私有成员友元的关键字为 friend友元的三种实现:全局函数做友元类做友元成员函数做友元1.4.1 全局函数做友元#include <iostream>#inc原创 2020-08-11 23:34:27 · 124 阅读 · 0 评论 -
C++ 类和对象学习 —— 对象模型和 this 指针
1.3 对象模型和 this 指针1.3.1 成员变量和成员函数分开存储在C++ 中,类内的成员变量和成员函数分开存储只有非静态成员变量才属于类的对象上#include <iostream>#include <string>using namespace std;//成员变量和成员函数分开存储class Person{ int m_A; //非静态成员变量 属于类的对象上 static int m_B; //静态成员变量 不属于类的对象上 void原创 2020-08-11 19:01:16 · 131 阅读 · 0 评论 -
C++ 类和对象学习 —— 对象的初始化和清理
1.2 对象的初始化和清理生活中我们买的电子产品都基本会有出厂设置,在某一天我们不用时候也会删除一些自己信息数据保证安全C++ 中面向对象来源于生活,每个对象也会有初级设置以及对象销毁前的清理数据的设置1.2.1 构造函数和析构函数对象的初始化和清理是两个非常重要的安全问题一个对象或者变量没有初始状态,对其使用后果是未知同样的使用完一个对象或变量,没有及时清理,也会造成一定的安全问题C++ 利用了构造函数和析构函数解决上述问题,这两个函数将会被编译器自动调用,完成对象初始化和清原创 2020-08-11 14:01:28 · 378 阅读 · 0 评论 -
C++ 类和对象学习 —— 封装
类和对象C++面向对象的三大特性为:封装、继承和多态C++认为万事万物都皆为对象,对象上有其属性和行为4.1 封装4.1.1 封装的意义将属性和行为作为一个整体,表现生活中的事物语法:class 类名{访问权限:属性 / 行为};将属性和行为加以权限控制访问权限三种:public protected private示例1#include <iostream>using namespace std;const double PI = 3.14;// 设计一个园类,求园原创 2020-08-10 10:55:10 · 203 阅读 · 0 评论 -
C++ 函数提高学习
1.1 函数默认参数在C++中,函数的形参列表中的形参可以有默认值语法:返回值类型 函数名(参数 = 默认值)#include <iostream>using namespace std;//函数默认参数//如果我们自己传入数据,就用自己的数据,如果没有,那么用默认值//语法:返回值类型 函数名(形参 = 默认值)int func(int a, int b = 20, int c = 30){ return a + b + c;}//注意事项//1. 如果某个位置已原创 2020-08-09 17:22:09 · 142 阅读 · 0 评论 -
C++ 面向对象之内存和引用
内存分区模型C++程序在执行时,将内存大方向划分为4个区域代码区:存放函数体的二进制代码,由操作系统进行管理的全局区:存放全局变量和静态局部变量以及常量栈区:由编译器自动分配释放,存放函数的参数值、局部变量等堆区:由程序员分配和释放,若程序员不释放,程序结束时由操作系统回收内存四区意义:不同区域存放的数据,赋予不同的生命周期,给我们更大的灵活编程1.1 程序运行前在程序编译后,生成exe可执行程序,未执行该程序前分为两个区域代码区:存放CPU执行的机器指令代码区是共享的,共享目的原创 2020-08-09 16:29:17 · 193 阅读 · 0 评论 -
C++应用 通讯录管理系统
通讯录管理系统系统需求添加联系人:向通讯录中添加新人,信息包括(姓名、性别、年龄、联系电话、家庭住址)最多纪录1000人显示联系人:显示通讯录中所有联系人信息删除联系人:按照姓名进行删除指定联系人查找联系人:按照姓名查看指定联系人信息修改联系人:按照姓名重新修改指定联系人清空联系人:清空通讯录中所有信息退出通讯录:退出当前使用的通讯录功能代码菜单功能void showMenu(){ cout << "***************************" <原创 2020-08-08 20:08:15 · 138 阅读 · 0 评论 -
C++ 结构体案例笔记
案例描述1学校正在做毕设项目,每名老师带领5个学生,总共有3名老师,需求如下:设计学生和老师的结构体,其中在老师的结构体中,有老师姓名和一个存放5名学生的数组作为成员学生的成员有姓名、考试分数,创建数组存放3名老师,通过函数给每个老师及所带的学生赋值最终打印出老师数据以及所带的学生数据。示例#include <string>#include <iostream>#include <ctime>using namespace std;struct St原创 2020-08-07 23:07:35 · 293 阅读 · 0 评论 -
C++ 指针学习笔记 + 实战
指针使用方法定义指针int *ip1, *ip2; // ip1和 ip2都是指向 int类型对象的指针double dp, *dp2; // dp2是指向 double类型对象的指针,dp是 double类型对象 double dval;double *pd = &dval; //初始值是double型对象的地址double *pd2 = pd; //初始值是指向double对象的指针获取对象地址int ival = 42;int *p = &ival;原创 2020-07-14 16:27:25 · 166 阅读 · 0 评论 -
C++ 共用体 union 实战举例
union:一种节省空间的类一个union可以有多个数据成员,但是union中所有成员是多选一的关系,这是union和struct的最大差别,即在任意时刻只有一个数据成员可以有值。当给union的某个成员赋值后,该union的其他成员就变成未定义状态。分配给一个union对象的存储空间至少要容纳它的最大数据成员。定义unionunion Token{ char cval; int ival; double dval;};C++中union类型定义后使用时可以省去unionunion原创 2020-07-14 15:16:19 · 425 阅读 · 0 评论 -
C++ enum 枚举实战举例
#include <iostream>using namespace std;enum class day: unsigned int { MON, THU, WEN };// enum day { MON, THU, WEN }; //简写方式推荐int main(void){ day d1; d1 = day::MON; // 命名空间声明(推荐) if (d1 not_eq day::WEN) { cout << "not WEN" <<原创 2020-07-14 13:26:37 · 369 阅读 · 0 评论 -
C++ “ 引用 ” 介绍、举例
引用经典案例实现swap函数#include <iostream>using namespace std;void swap1(int &a, int &b);int main(void){ int x = 4, y = 6; swap1(x, y); cout << x << "," << y << endl; return 0;}void swap1(int &a, int &b)原创 2020-07-14 09:37:06 · 351 阅读 · 1 评论 -
C++ 标准库查询参考网站(收藏)
man手册使用链接CPP Reference英文网站链接中文网站链接原创 2020-07-13 17:20:10 · 4675 阅读 · 1 评论 -
区别编译环境是C or C++
C++是C的超集一个典型C程序(后缀名.c)可以完全被视为C++程序来编译C程序可以通过__cplusplus符号是否预定义来判断当前是gcc还是g++编译__cplusplus的值是long int类型的,值表示当前编译程序的C++编译器的版本号。#include <cstdio>#ifdef __cplusplus#define USECPP 1#else#define USECPP 0#endif一个典型C++程序(后缀名.cpp)只能当C++程序来编译,可见C++是原创 2020-07-13 13:55:47 · 289 阅读 · 0 评论 -
C++ 命名空间 namespace 学习笔记
何为命名空间命名空间的引入(1)命名空间namespace,是C++引入的一种解决全局变量和函数名冲突的机制(2)C语言没有namespace,但是C++及之后的java python等都有(3)namespace的关键点有2个:一是如何解决名称冲突,二是如何合法访问变量C语言如何解决名称冲突(1)大项目中会有很多C文件,全局变量和函数都是extern链接属性,因此名称冲突是客观存在(2)一个项目是一个单体程序,项目中的全局变量和函数理应能互相访问,因此名称冲突是客观存在(3)C中解决名称冲原创 2020-07-12 23:09:11 · 285 阅读 · 0 评论