自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(54)
  • 收藏
  • 关注

原创 Anaconda安装

打开Anaconda Prompt,输入python,可以看到python为3.9.12版本。2.和python版本关系(windows-64位)下载一个历史本到本地的exe如下。1.Anaconda下载路径。默认是C盘,这里安装在D盘。后续环境按照默认,安装。

2023-12-10 17:00:11 194

原创 基于OpenCV的对象检测学习

一、HOG特征二、SVM算法三、OpenCV代码四、检测结果

2023-01-01 20:43:34 471 1

原创 Matlab四维矩阵

可以将整个4维矩阵看成一个2×3的元胞(代表第三维和第四维),每个元胞里存放的都是一个2×2的矩阵(代表第一维和第二维)在matlab定义一个四维矩阵A。

2022-12-27 09:52:27 3283

原创 OpenCV图像位操作

异或:相异为1,相同为0。由于参与异或操作的两幅图像都是dog图像,所以两幅每个像素一模一样,相同则为0,故在mask区域的异或效果也为黑色。因为选用了两幅相同的src,所以与和或的效果还是原图的效果。与、或、非、异或 ,利用Mask操作。只有mask白色区域会有效果。

2022-09-17 19:31:16 623

原创 OpenCV图像算术操作

【代码】OpenCV图像算术操作

2022-09-17 18:26:30 475

原创 OpenCV图像像素遍历与访问

Mat类中的cols、rows为图像的宽、高。成员函数at(row,col)可以存取图像元素。对于包含彩色图像的Mat,OpenCV中将三个8位数组组成的向量定义为Vec3b。Mat类提供了ptr函数可以得到图像任意行的首地址。

2022-09-04 19:40:20 1329

原创 OpenCV中Mat对象及其创建

在opencv4_002.cpp中编写完成程序后,要想运行,需将其设为启动项目(否则会继续运行opencv4_001.cpp)上图已有两个项目,现在此基础上继续新建。方法:选中解决方案->右键->添加->新建项目。名称和路径修改,确定。在opencv中,Mat用来存储图像的数据结构。然后,分别右键点击源文件–>添加–>新建项,添加cpp源文件。重新生成解决方案,然后运行程序,执行的才是002的结果。矩阵头:包含矩阵尺寸、存储方法和存储地址等信息。指针:一个指向存储所有像素值的矩阵的指针。

2022-09-04 16:44:14 2320

原创 OpenCV图像加载、显示与保存

然后保存才能看到透明通道效果(此处保存为testone.png)5、加载一张带有透明通道图像(背景透明),显示时,背景会变成白色。3、窗口适应图像(窗口大小无法调整)imshow不支持透明通道显示。保存:imwrite。

2022-09-04 15:04:26 915

原创 VS2017配置OpenCV4.5.1

目前电脑已经存在vs2013,且配置的是opencv2.4.9。继续安装了vs2017,并配置了opencv4.5.1。在 OpenCV 官方网站(https://opencv.org/)可以下载最新的且完整的源码以及大部分的 release 版本源码。具体的下载链接可以通过下载页面(https://opencv.org/releases.html)访问。当然,最新的代码也会在 github(https://github.com/opencv/opencv)上进行即时更新。如果想要获取最新的高级函数功能

2021-10-06 11:14:06 662

原创 C++学习拷贝构造函数

1、拷贝构造函数是构造函数的一种2、当利用已经存在的对象创建一个新对象时(类似于拷贝),就会调用新对象3、的拷贝构造函数 进行初始化4、拷贝构造函数的格式是固定的,接收一个const引用作为参数#include<iostream>using namespace std;class Car{ int m_price; int m_length;public: //构造函数,初始化成员变量 Car(int price = 0, int length = 0) :m_price

2021-09-24 20:36:39 154

原创 C++学习const成员

const成员:被const修饰的成员变量、非静态成员函数const成员变量:必须要初始化(类内部初始化),可以在声明的时候直接初始化赋值非static的const成员变量还可以在初始化列表中初始化const成员函数(非静态):const关键字写在参数列表后面,函数的声明和实现都必须带const内部不能修改非静态成员变量内部只能调用const成员函数、static成员函数const成员函数和非const成员函数可以构成重载非const对象(指针)优先调用非const成员函数c

2021-09-24 17:56:02 224

原创 C++学习static成员

静态成员:被static修饰的成员变量、成员函数可以通过对象(对象.静态成员)、对象指针(对象指针->静态成员)、类(类名::静态成员)访问静态成员变量1、存储在数据段(全局区,类似于全局变量),整个程序运行过程中只有一份内存2、对比全局变量,它可以设定访问权限(public、protected、private),达到局部共享的目的3、必须初始化、必须在类外面初始化,初始化时不能带static,如果类的实现和声明分离(在实现.cpp中初始化)静态成员函数1、内部不能使用thi..

2021-09-23 21:29:52 116

原创 C++学习菱形继承与虚继承

#include<iostream>using namespace std;//菱形继承struct Person{ int m_age;};struct Student :Person{ int m_score;};struct Worker : Person{ int m_salary;};struct Undergradute :Student, Worker{ int m_grade;};int main() { Undergradute ug;

2021-09-23 17:16:03 190

原创 C++多继承

C++允许一个类可以有多个父类(会增加程序计算复杂度)多继承体系下的构造函数的调用(完成成员初始化):多继承-虚函数。如果子类继承的多个父类都有虚函数,那么子类对象就会产生对应的多张虚表:同名成员变量:...

2021-09-23 16:00:58 370

原创 C++纯虚函数和抽象类

纯虚函数:在声明虚函数时被初始化为0的函数,用来定义接口规范抽象类:含有纯虚函数的类,不可以实例化(不可以创建对象)抽象类可以包含非纯虚函数、成员变量如果父类是抽象类,子类没有完全重写纯虚函数,那么这个子类是抽象类#include<iostream>using namespace std;//Animal为抽象类struct Animal{ //纯虚函数 virtual void speak() = 0; virtual void run() = 0; ...

2021-09-23 14:54:27 386

原创 虚析构函数

如果存在父类指针指向子类对象的情况,应该将析构函数声明为虚函数(虚析构函数)delete父类指针时,才会调用子类的析构函数,保证析构的完整性#include<iostream>using namespace std;struct Animal{ void speak() { cout << "Animal::speak()" << endl; } void run() { cout << "Animal::run()" &l..

2021-09-23 11:27:36 92

原创 C++学习多态和虚函数

默认情况下,编译器只会根据指针类型调用对应的函数,不存在多态多态:同一操作作用于不同的对象,可以有不同的解释,产生不同的结果C++中,多态通过虚函数来实现虚函数:被virtual修饰的成员函数只要在父类中声明为虚函数,子类中重写的函数也自动变为虚函数(子类中可以省略virtual关键字)多态的要素:子类重写父类的成员函数(成员函数为虚函数)父类指针指向子类对象利用父类指针调用重写的成员函数#include<iostream>using namespace st..

2021-09-22 20:05:50 86

原创 C++父类的构造函数

子类的构造函数默认会调用父类的无参构造函数如果子类的构造函数显式的调用了父类的有参构造函数,就不会再去默认调用父类的无参构造函数如果父类缺少无参构造函数,子类的构造函数必须显式调用父类的有参构造函数#include<iostream>using namespace std;class Person{ int m_age;public: Person(int age) :m_age(age) {}};class Student :Person{ int m_no;..

2021-09-22 15:03:29 1388

原创 C++初始化列表

一种便捷的初始化成员变量的方式只能用在构造函数中初始化顺序只跟成员变量的声明顺序有关如果函数声明和实现是分离的,初始化列表只能写在函数实现中,默认参数只能写在函数申明中#include<iostream>using namespace std;class Person{public: int m_age; int m_height; //Person(int age, int height) { // m_age = age; // m_height = he.

2021-09-21 17:21:11 215

原创 成员访问权限

成员访问权限、继承方式有3种:public:公共的,任何地方都可以访问(struct默认)protected:子类内部,当前类内部都可以访问private:私有的,只有当前类内部可以访问(class默认)#include<iostream>using namespace std;//访问权限不影响内存布局struct Person{private: int m_age;public: void run() { }};struct Student :pub.

2021-09-21 16:27:01 280

原创 C++学习继承

继承,可以让子类拥有父类的所有成员(变量/函数)#include<iostream>using namespace std;class Person{public: int m_age; void run() { }};//Student继承Perso//Student是子类(派生类),Person是父类(超类)class Student:Person{public: //int m_age; int m_score; //void run() { //

2021-09-21 15:17:02 60

原创 命名空间namespace

#include<iostream>using namespace std;//命名空间不影响内存布局//命名空间可以嵌套namespace WK { int g_age; void func() { } class Person { int m_age; };};class Person { int m_height; int m_money;};int main() { //Person person; //cout << si

2021-09-21 14:30:23 49

原创 类的声明和实现分离

一、在同一文件中#include<iostream>using namespace std;class Person{private: int m_age;public://声明 void setAge(int age); int getAge(); Person(); ~Person();};//实现void Person::setAge(int age) { m_age = age;}int Person::getAge() { return m_ag

2021-09-20 21:00:33 434 1

原创 C++学习内存管理

对象内部申请的堆空间,由对象内部回收#include<iostream>using namespace std;class Car{public: int m_price; Car() { m_price = 0; cout << "Car::Car()" << endl; } ~Car() { cout << "Car::~Car()" << endl; }};class Person{public:.

2021-09-20 20:06:36 462 2

原创 C++学习析构函数

析构函数(也叫析构器),在对象销毁的时候自动调用,一般用于完成对象的清理工作以~开头,与类同名,无返回值,无参,不可以重载,有且只有一个析构函数通过malloc分配的对象,free的时候不会调用析构函数构造函数、析构函数要申明为public,才能被外界正常使用#include<iostream>using namespace std;class Person{public: int m_age; //构造函数:新的Person对象诞生的象征 Person() {..

2021-09-20 16:45:29 93

原创 C++学习构造函数

#include<iostream>using namespace std;class Person{public: int m_age; //构造函数,在对象创建的时候自动调用,一般用于完成对象的初始化 //和类名相同,无返回值,可以有参数,可以重载 //一旦自定义了构造函数,必须用其中一个自定义的构造函数来初始化对象 //***通过malloc分配的对象不会调用构造函数 Person() { m_age = 0; cout << "Person()"

2021-09-20 15:35:29 56

原创 C++内存空间

/*代码段:用于存放代码数据段:用于存放全局变量栈空间:每调用一个函数就会给它分配一段连续的栈空间(存放函数中的局部变量), 等函数调用完毕后会自动回收这段栈空间(自动分配和回收)堆空间:需要主动申请和释放(为了自由控制内存的生命周期、大小)*/#include<iostream>using namespace std;void test() { //【1】 int *p = (int *)malloc(4);//申请4个字节,返回这4个字节首地址.强制转

2021-09-19 17:04:03 207

原创 C++学习封装

#include<iostream>using namespace std;/*封装:成员变量私有化,提供公共的getter和setter给外界去访问成员变量*/class Person{private: int m_age;public: void setAge(int age) { if (age <= 0) { m_age = 1; } else{ m_age = age; } } int getAge() { return

2021-09-19 15:39:47 68

原创 C++学习this指针

#include <iostream>using namespace std;//函数都存放在代码区class Person{public: int m_age; /*void run(Person *person) { cout << "Person::run() - " << person->m_age << endl; }*/ void run() { //this指针存储着函数调用者的地址 //this指向了函数

2021-09-19 10:20:07 58

原创 C++类和对象

#include <iostream>using namespace std;/*struct和class定义类的区别:struct默认成员权限是public,class默认成员权限是private*//*//1、用class定义一个类class Person1{ //成员变量(属性) int age1; //成员函数(方法) void run1() { cout << "Person1::run1()" << endl; }*///

2021-09-18 17:32:45 56

原创 C++学习const常引用和const常指针

#include<iostream>using namespace std;/*引用可以被const修饰,这样就无法通过引用修改数据,称为常引用(const必须写在&符号的左边)*/int main() { int height = 20; int age = 10; const int &ref = age;//常引用 const int *p = &age;//常指针 //ref = 30;//无法通过ref修改age //*p=30;//同

2021-09-18 14:46:18 141

原创 C++学习引用

#include<iostream>using namespace std;/*在C语言中,使用指针可以间接获取、修改某个变量的值在C++中,使用引用可以起到跟指针类似的功能*/int main() { int age = 10; int height = 20; //指针方式 //int *p = &age; //*p = 20; //cout << age << endl;//20 //引用方式 //引用相当于是变量的别名

2021-09-17 15:13:51 78

原创 C++_const常量

#include <iostream>using namespace std;//const是常量的意思,被其修饰的变量不可修改//const int age = 10;//必须定义时指定其值,age不能修改//如果修饰的是类、结构体(的指针),其成员也不可以更改struct Date{ int year; int month; int day;};int main() { //Date d = {2021, 9, 16};//定义结构体变量,C语言需要在前面加上

2021-09-17 10:11:33 130

原创 C++内联函数

#include <iostream>using namespace std;/*什么时候使用内联函数?1.函数代码体积不大2.频繁调用的函数*///使用inline修饰函数的声明或者实现,可以使其变成内联函数//建议声明和实现都增加inline修饰inline void func();inline int sum(int v1, int v2);inline void func() { cout << "func()" << endl;}

2021-09-17 09:09:10 173

原创 C++和C混合编译思路

由于第三方框架/库可能是C编写的,用C++调用C,C调用C,两者混合编程1.main.cpp源文件:包含程序执行入口的main函数,main.cpp调用math.c#include<iostream>using namespace std;//#define __cplusplus为定义C++环境的宏,默认不写/*第三方框架/库,可能是C语言写的,C++调用C*//*//方法一: 不添加头文件extern "C"{ int sum(int v1, int v2);

2021-09-16 11:37:16 488

原创 C++学习extern “C“

#include<iostream>using namespace std;//被extern-C修饰的代码会按照C语言的方式去编译//通过C语言方式编译,不支持函数重载//extern "C" void func() {////}//extern "C" void func(int v) {////}//同上//extern "C"{// void func() {//// }// void func(int v) {//// }//}//如果函数同

2021-09-15 22:37:21 118

原创 C++学习函数重载

#include<iostream>using namespace std;//函数名相同,参数个数不同int sum(int v1, int v2) { return v1 + v2;}int sum(int v1, int v2, int v3) { return v1 + v2 +v3;}//函数名相同,参数类型或顺序不同void func(int v1, double v2) { cout << "func(int v1, double v2)" &

2021-09-15 19:54:44 64

原创 C++学习默认参数

#include<iostream>using namespace std;//若子函数在main函数后,需要提前声明,且默认参数只能在声明中//默认参数会被实参覆盖//默认参数从右到左的顺序出现,默认参数可以是常量、全局变量、函数名int sum(int v1 = 5, int v2 = 6);//声明void test(int a) { cout << "test(int)-" << a << endl;}void func(int

2021-09-15 19:46:19 77

原创 Python——字典操作

# 字典是一个无序的数据集合,输出顺序和定义并不一定一样"""字典用键值对存储数据,键值对之间使用,分隔。键是索引且唯一,只能使用字符串、数字或元组值是数据,可取任何数据类型"""xiaoming = {"name": "小明", "age": 18, "gender" : True, "height" : 1.75, "weight" : 75.5}print(xiaoming)# 字典的增

2021-09-14 11:24:24 144

原创 python——元组

# 元组用小括号, 元素不能修改(列表中括号, 元素可修改)info_tuple = ("zhangsan", 18, 1.75, "zhangsan") # 通常保存不同类型的数据(列表数据类型通常相同)# 取值和取索引print(info_tuple[1])print(info_tuple.index(18))# 统计计数print(info_tuple.count("zhangsan"))print(len(info_tuple))# 迭代遍历元组for my_info i

2021-09-13 11:40:14 176

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除