自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 手搓代码之Alexnet

手搓代码之Alexnet

2023-08-04 20:41:47 165

原创 手搓代码之LeNet

手搓LeNet,并且逐行解释,快速提升能力

2023-08-01 20:42:52 194

原创 opencv-图像形状变换(二)

通过上述的平移,缩放,旋转的组合变换即实现了仿射变换,上述多个变换的变换矩阵相乘即能得到组合变换的变换矩阵。同时该变换矩阵中涉及到六个未知数(2*3的矩阵),通过变换前后对应三组坐标,也可以求出变换矩阵,opencv提供了函数getAffineTransform()来计算变化矩阵。将(x,y),以坐标原点为中心,顺时针方向旋转α得到(x1,y1), 有如下关系x1 = xcosα-ysinα, y1 =xsinα+ycosα;1> 矩阵相乘:将平移,旋转和缩放的变换矩阵相乘,最后即为仿射变换矩阵。

2023-03-09 14:00:50 173

原创 opencv-图像形状变换(一)

仿射变换的本质:即一个矩阵A和向量B共同组成的转变矩阵,和原图像坐标相乘来得到新图像的坐标,从而实现图像移动,旋转等。如下矩阵A和向量B组成的转变矩阵M,用来对原图像的坐标(x,y)进行转变,得到新的坐标向量T。仿射变换可以通过一系列的原子变换的复合来实现,包括平移,缩放,翻转,旋转和剪切)了解了仿射变换的概念,平移变换只是采用了一个如下的转变矩阵(transformation matrix): 从(x,y)平移到(x+tx, y+ty)仿射变换(矩阵计算):变换前坐标(x,y)4.2.1 平移变换。

2023-03-09 13:48:50 224

原创 Opencv实现抠图

原图如下:想将左上角的图扣下做素材这样就完成了抠图做素材的所有步骤了此处是将图像由彩色图转成了灰度图。

2023-03-09 10:12:48 2393

原创 C++指针(面试高频考点2)

NULL在C++中就是0,这是因为在C++中void* 类型是不允许隐式转换成其他类型的,所以之前C++中用0来代表空指针,但是在重载整形的情况下,会出现上述的问题。所以,C++11加入了nullptr,可以保证在任何情况下都代表空指针,而不会出现上述的情况,因此,建议用nullptr替代NULL吧,而NULL就当做0使用。3)指针指向的变量已超越变量的作用域(变量的内存空间已被系统回收),让指针指向了函数的局部变量,或者把函数的局部变量的地址作为返回值赋给了指针。所以,内存被释放后,也应该把指针指向空。

2023-03-07 17:23:45 345

原创 Python--os.path.join()函数

如果存在以“./”与“/”开始的参数,以"/"为主,从最后一个以”/”开头的参数开始拼接,之前的参数全部丢弃。如果存在以‘’/‘’开始的参数,从最后一个以‘’/‘’开头的参数开始拼接,之前的参数全部丢弃。os.path.join()函数的作用,其实就是拼接,在写一些常见的脚本的时候,是需要用到的。只存在以‘’./‘’开始的参数,会从”./”开头的参数的上一个参数开始拼接。

2023-03-04 14:04:05 149

原创 pycharm终端常用指令

Ctrl+& 恢复 ctrl+h 或者 ctrl+d 或者 ctrl+w 删除的内容。Ctrl+y 粘贴由 Ctrl+u , Ctrl+d , Ctrl+w 删除的单词。Shift+Ctrl+PgUp/PgDn 左移右移标签页。Alt+T 打开 “终端” 菜单(terminal)Alt+S 打开 “搜索” 菜单(search)Alt+F 打开 “文件” 菜单(file)Alt+H 打开 “帮助” 菜单(help)Shift+Ctrl+N 打开新的终端窗口。Shift+Ctrl+T 打开新的标签页。

2023-03-02 11:25:54 4236

原创 矩阵中的局部最大值

示例 1:来源:力扣(LeetCode)著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。1、len() 函数返回对象中项目的数量。当对象是字符串时,len() 函数返回字符串中的字符数。

2023-03-01 14:58:47 158

原创 C++指针(面试高频考点1)

在C++中,指针是复合数据类型,复合数据类型是指基于其它类型而定义的数据类型,在程序中,int是整型类型,int*是整型指针类型,int*可以用于声明变量,可以用于sizeof运算符,可以用于数据类型的强制转换,总的来说,把int*当成一种数据类型就是了。如果把函数的形参声明为指针,调用的时候把实参的地址传进去,形参中存放的是实参的地址,在函数中通过解引用的方法直接操作内存中的数据,可以修改实数的值,这种方法被通俗的称为。指针存放变量的地址,因此,指针名表示的是地址(就像变量名可以表示变量的值一样)

2023-02-28 08:43:37 192

原创 C++ sizeof运算符

字符串(string)不是C++的基本数据类型,用sizeof求它占用内存的大小没有意义。在32位和64位操作系统中,同一种数据类型占用的内存空间可能不一样。用于变量:sizeof(变量名) 或sizeof 变量名。sizeof运算符用于求数据类型或变量占用的内存空间。用于数据类型:sizeof(数据类型)

2023-02-27 15:36:18 182

原创 C++递归函数

一个函数可以调用另一个函数,作为特例,如果函数调用了自己,就像故事中提到了同样的故事一样,我们把函数在运行时调用自己的情况叫做递归。递归函数中一定要有递归终止的条件,否则是死递归。

2023-02-27 14:33:42 250

原创 C++函数参数的传递

调用者程序中书写的在函数名括号中的参数,可以是常量、变量和表达式。在函数定义的代码中,修改形参的值,会不会影响实参。调用函数的时候,调用者把数值赋给了函数的参数。

2023-02-27 09:51:06 66

原创 C++变量的作用域

局部变量和全局变量的名称可以相同,在某函数或语句块内部,如果局部变量名与全局变量名相同,就会屏蔽全局变量而使用局部变量,如果想使用全局变量,可以在变量名前加两个冒号(::)。局部变量不会自动初始化,其值是不确定的,程序中应该有初始化局部变量的代码,否则编译可能会报错(不同的编译器不一样)。变量分全局变量和局部变量两种,全局变量在整个程序中都可以访问,局部变量只能在函数或语句块的内部才能访问。在函数或语句块内部的语句使用,在函数或语句块外部是不可用的。3)在函数和语句块内部定义的是局部变量。

2023-02-27 09:49:54 714

原创 C++中的函数部分学习

函数的声明和定义可以书写在一起,也可以分开,如果书写在一起,一般放在main函数的上面,如果分开,一般在main函数的上面声明,在main函数的下面定义。函数的声明必须和函数的定义一致(返回值的数据类型、函数名和参数列表),如果函数名和参数列表不同,表示它们不是同一个函数。如果函数的声明和定义分开书写,函数的声明后面一定要有分号,函数的定义后面一定不能写分号。不管在什么地方,都不能调用main函数,但是,在普通函数中,可以调用其它的普通函数。声明函数的代码必须放在调用之前,定义函数的代码可以放在调用之后。

2023-02-25 15:02:53 115

原创 C++while 和for循环及嵌套使用

C++while 和for循环及嵌套使用

2023-02-22 10:05:32 575

原创 C++三目运算

C++三目运算

2023-02-21 16:15:23 1624

原创 C++浅写一个if嵌套语句

if嵌套语句需要注意的问题

2023-02-21 14:32:25 229

原创 C++逻辑运算

C++逻辑运算

2023-02-21 11:10:27 76

原创 C++的关系运算

C++的关系运算

2023-02-20 21:35:25 117

原创 C++初始化赋值

C++初始化赋值俩种形式

2023-02-20 21:03:41 298

原创 C++ <<应输入表达式错误

新手容易犯错,定义宏变量加;号,导致在

2023-02-17 11:05:30 2708

空空如也

空空如也

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

TA关注的人

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