新手
文章平均质量分 59
番茄土豆牛肉煲
一个新手,正在处于学习的阶段
展开
-
Softmax求导
在神经网络中,我们经常可以看到以下公式,用于计算结点的激活值:直接甩出Softmax的公式:n表示类别数,z表示输出向量,zj表示向量z的第j个值。对Softmax求导:显然是目标是和根据求导的链式法则:所以核心问题就转换为求,在接触到这个式子的时候,考虑到一个问题,为什么这里是对求导而不是对求导,接下来举例说明:从图中可以得到z4 = w41*o1+w42*o2+w43*o3z5 = w51*o1+w52*o2+w53*o3z6 ..原创 2021-03-15 00:03:03 · 1912 阅读 · 0 评论 -
python读取文件名及后缀
因为某些原因,需要读取d.lib后缀的文件,在此写下记录os.listdir()语法:os.listdir(path)函数用途:输出路径下所有文件的文件名实验代码:假如我们需要读取该文件夹所包含全部文件名import ospath = "E:/vs_code/qtVideo/lib"datanames = os.listdir(path)for i in datanames: print(i)输出:A_TESTOpenCVConfig-versi.原创 2020-06-30 23:05:36 · 59706 阅读 · 1 评论 -
pytorch学习——torch.max
torch.max学习记录:首先定义数据:import torcha = torch.randn(2,3)print("a:",a)结果如下:a: tensor([[-0.5658, -0.9736, -1.1753], [ 1.2006, 0.4078, -2.0542]])torch.max(input,dim)按维度dim 返回最大值torch.max(a,dim=0) 返回值为一个元组,元组里包含两个值,第一个值为一个每一列中最大元素,...原创 2020-06-11 00:52:48 · 535 阅读 · 0 评论 -
C与C++的区别(1)
1.namespace 命名空间所谓namespace是指各种标识符可见<iostream>和<iostream.h>格式不一样,前者没有前缀,实际上,在你的编译器里include可以看到这是两个文件,打开文件发现里面的代码是不一样的,后缀.h在C++编译器中已经明确提出不支持了,C++标准为了与C区分开,为了了正确使用命名空间,规定头文件不允许后缀.h使用&l...原创 2018-08-13 13:27:51 · 217 阅读 · 0 评论 -
图像边缘理论知识
什么是图像的边缘通常,边缘上的灰度变化平缓,边缘两侧的灰度变化较快,图像的边缘一般指局部不连续的的图像特征(某个小局部不连续了,不连续就是不一致了,打个比方,比如说是蓝的,突然变白了,这时候就产生边缘了)。一般是局部亮度变化最显著的部分,所以说边缘就是变化最显著的部分,灰度值的变化,颜色分量的突变以及纹理结构的突变都可构成边缘信息。如何寻找边缘要找边缘就要找他的变化量,数据的变化量,在...原创 2018-08-17 14:47:38 · 14735 阅读 · 0 评论 -
opencv滑动窗口createTrackbar
今天用到了createTrackbar,发现其中的回调函数onChange的两个参数(int , void*) 有点不太理解,于是查了官方文档简单描述一下什么是回调函数: 用户把一个函数指针作为参数传递给其他函数,后者将“回调”用户的函数。如果函数可以再不同的时间执行不同类型的工作或者执行只能由函数调用者定义的工作,都可以使用回调函数。回调函数无法知道比较的值的类型,所以参数的类型被声...原创 2019-04-23 16:13:31 · 575 阅读 · 1 评论 -
STL学习——vector的erase()
由于需要删除vector里的指定元素,所以接触到了erase()方法,写下记录#include<iostream>#include<vector>using namespace std;int main(){ int a[4] = { 1,1 ,2,3 }; //初始化向量 vector<int>vec_a(a, a + 4); //...原创 2019-05-26 22:06:31 · 315 阅读 · 0 评论 -
opencv学习——轮廓分析寻找近似圆
这是一张经过处理后的红灯的图像,我们需要找到其中的红灯,可以看到是两个圆,用霍夫圆之后发现其中调参非常麻烦,于是写了一个根据轮廓来分析圆的算法。算法思想:findContours()找到图像的轮廓,使用minEnclosingCircle()找到轮廓的最小包围矩形,计算轮廓上的每个点到圆心的距离和半径的差值,进行累加(简单来说就是求轮廓中每个点到圆心距离和半径的方差),当累加和小于某个值时...原创 2019-06-03 02:25:47 · 5573 阅读 · 4 评论 -
Matlab axis用法
转载地址:http://blog.sina.com.cn/s/blog_b26a90750101kxdx.htmlaxis off;% 去掉坐标轴axistight;% 紧坐标轴axisequal;% 等比坐标轴axis([-0.1, 8.1, -1.1, 1.1]);% 坐标轴的显示范围% gca: gca, h=figure(...);set(gca,'XLim'...转载 2019-06-17 17:39:50 · 6159 阅读 · 0 评论 -
tf.argmax()函数
argmax(input, axis=None, name=None, dimension=None, output_type=tf.int64) Returns the index with the largest value across axes of a tensor. (deprecated arguments)根据axis的值返回行或者列最大值的下标,axis取值[-2,...原创 2019-08-29 17:59:01 · 539 阅读 · 0 评论 -
K-means算法
偶然接触到了K-means,在理解之后写下博客记录。首先,K-means是一种无监督学习的聚类算法。什么是聚类算法,聚类就是对大量未标注的数据集,按数据存在的内部特征特征划分为多个不同的类别。K-means算法接受参数k,然后将事先输入的n个数据划分为k个聚类。其中满足条件:同一聚类对象相似度高,不同聚类对象相似度较小。算法思想k个点为中心聚类,对靠近的对象类归类,通过迭代,逐...原创 2019-09-17 21:54:57 · 1243 阅读 · 0 评论 -
linux下编译器-vim学习
编辑器之神-vimvi简介vi是“Visual interface”的简称,它在Linux上的地位就仿佛Edit程序在DOS上一样。它可以执行输出、删除、查找、替换、块操作等众多文本操作,而且用户可以根据自己的需要对其进行定制。Vi不是一个排版程序,它不象Word或WPS那样可以对字体、格式、段落等其他属性进行编排,它只是一个文本编辑程序。 vi没有菜单,只有命令,且命令繁多。Vi...原创 2019-09-26 23:21:37 · 170 阅读 · 0 评论 -
ubuntu更换源
所谓的镜像源:可以理解为提供下载软件的地方,比如Android手机上可以下载软件的应用商店;iOS手机上可以下载软件的AppStore由于ubuntu本身源是在国外,有时候下载东西非常慢,接下来介绍一下ubuntu如果更换源,以清华大学的源为例:1. 寻找国内镜像源首先进入清华大学开源软件镜像站:清华大学开源软件镜像站往下拉找到ubuntu,点击旁边问号找到自己系统的版本,...原创 2019-09-28 00:11:23 · 4772 阅读 · 2 评论 -
VS2015下文件生成动态链接库以及使用(二)
上一篇发布了.c的动态链接库生成与调用 接下来介绍一下.cpp的动态链接库生成与使用生成动态链接库1.把上篇文章创建的第一个工程里的.c重命名为.cpp 然后在__declspec(dllexport)前面加上extern "C"2. dm01.h文件同上修改,__declspec(dllexport)前面加上extern "C"3.编译后把生成的dll和lib拷贝到我...原创 2018-08-02 16:37:35 · 1139 阅读 · 0 评论 -
VS2015下文件生成动态链接库以及使用(一)
本人VS2015+WIN10测试环境 ,接下来介绍如何.c文件生成动态链接库以及调用 生成动态链接库1.创建工程,选择WIN32控制台应用程序2.点击下一步3.选择DLL 空项目 完成4.创建dm01.c 和dm01.h文件 5.在.c和.h添加如下内容 ,函数功能:返回两数相加之和6. 在.c文件下的函数前添加 __declspec(dllex...原创 2018-08-02 14:15:45 · 6620 阅读 · 3 评论 -
OPENCV cmake编译后只有DEBUG模式的lib库 如何生成release模式的lib库
之前用cmake编译opencv,后来发现lib库下只有DEBUG的动态链接库(d.dll的 ,不带d的是release,debug模式下是进行学习的,可以进行调试模式,而release没有这个功能所以他有更快的速度,更小的体积, release版本不对源代码进行调试,编译时对应用程序进行优化 ), 解决方法如下如图:打开cmake编译后的opencv工程,找到INSTALL这个时候要注意,我们要原创 2018-01-19 11:20:46 · 3538 阅读 · 7 评论 -
vs2015配置tesseract4.0
有幸接触到tesseract4.0,配置环境弄了很久,在此分享给大家 首先在此链接下载好所需要的配置点击打开链接解压后是三个文件夹打开vs2015 新建项目 win32控制台程序点击完成找到类视图 ,右键属性配置属性->vc++目录 找到包含目录 ,把之前解压文件里的d:...\include ,d:...\include\tesseract ,d:...\include\leptoni...原创 2018-02-10 09:45:07 · 3467 阅读 · 28 评论 -
opencv3.3 级联分类器生成xml以及遇到的一些问题
opencv3.3 训练级联分类器训练成功 来分享一波今天遇到一位群友 对于级联分类器有点问题 于是我决定把训练的过程分享出来,并且和大家说说训练过程中可能会出现的问题。创建样本步骤:准备训练集 首先 准备好训练集 正样本和负样本 (我做的是车牌识别 所以选取的正样本是车牌),正样本放在positive文件夹下的img文件夹里(positive上面那个img文件夹存放的负样本,大家不要混...原创 2018-02-08 14:35:43 · 3163 阅读 · 7 评论 -
opencv 模板匹配中的 minMaxLoc
在opencv模板匹配中用到了这个函数matchTemplate(src, tmp_img, dst_img, TM_CCOEFF_NORMED);normalize(dst_img, dst_img, 0, 1, NORM_MINMAX, -1, Mat());double minVal; double maxVal; Point minLoc; Point maxLoc;Po...原创 2018-02-06 13:18:30 · 2163 阅读 · 0 评论 -
基于vs2015+opencv3.3的简易的车牌定位
基于vs2015+opencv3.3的简易的车牌定位直接上代码#include<opencv2\opencv.hpp>#include<iostream>using namespace cv;using namespace std;int areas;//该函数用来验证是否是我们想要的区域,车牌定位原理其实就是在图片上寻找矩形,我们可以用长宽比例以及面...原创 2017-11-30 13:07:45 · 3802 阅读 · 9 评论 -
opencv学习笔记——霍夫直线变换
霍夫直线变化,前提是边缘检测已完成平面空间到极坐标空间的转换,平面坐标空间为y=kx+b,极坐标空间直线为ρ=xCosθ+ySinθ一般来说对于点(x0,y0), 可以将通过这个点的直线统一定义为 ρ0 = x0 · Cosθ+y0 · Sinθ我们定义三个点 (x0,y0) (x1,y1) (x2,y2) , 对于θ来说,我们规定在(0,180) 或者(0,360),每次不断递增,可以得到对应...原创 2018-06-08 20:27:50 · 564 阅读 · 0 评论 -
数组转Mat遇到的小问题
int b ={9558 , 3469 ,3114 ,1418, 577 , 340 , 106 ,186}; Mat B(8,1,CV_16SC1,b);结果 B= [9558 ,0, 3469 ,0 ,3114 ,0,1418,0];不是预期的 【9558 , 3469 ,3114 ,1418, 577 , 340 , 106 ,186】 ...原创 2018-07-29 11:17:52 · 803 阅读 · 0 评论 -
CUDA学习笔记——并行编程的通讯模式
并行计算:非常多的线程在合作解决一个问题。 ■1. 映射Map■2. 聚合gather■3. 分散scatter■4. 模板stencil■5. 转换transpose■6. 压缩reduce■7. 重排scan/sort1.映射Map,一一对应,举例:把数组x的每一个元素都放大三倍,输出到数组y2.聚合gatter:多对一,举例:把数组x[0]+x[1...原创 2018-08-04 14:41:29 · 391 阅读 · 0 评论 -
学习cuda编程结构以及案例
#include "cuda_runtime.h"#include "device_launch_parameters.h"#include <stdio.h>#include<math.h>#include<time.h>#include<stdlib.h> /* CUDA编程结构 *//* 1.分...原创 2018-08-05 11:02:02 · 360 阅读 · 0 评论 -
内存对齐
原博客地址关于内存对齐内存地址对齐,是一种在计算机内存中排列数据(表现为变量的地址)、访问数据(表现为CPU读取数据)的一种方式,包含了两种相互独立又相互关联的部分:基本数据对齐和结构体数据对齐 。 为什么需要内存对齐?对齐有什么好处?是我们程序员来手动做内存对齐呢?还是编译器在进行自动优化的时候完成这项工作? 在现代计算机体系中,每次读写内存中数据,都是按字(...转载 2018-07-28 09:42:25 · 173 阅读 · 0 评论 -
CUDA入门 ——基础讲解
CUDA一些基础名词讲解:主机:cpu和memory(内存)设备:gpu和memory(显存)warp:thread函数类型限定符:__global__ __host__ __device__ 变量类型限定符: __device__ __shared__ __constant__thread:线程block:多个线程组成(举个例子 一个...原创 2018-07-28 13:30:59 · 284 阅读 · 0 评论 -
opencv投影分析
两个函数,一个垂直投影分析,一个水平投影分析,输入src为要分析的图像,输出dst为投影分析的结果图,返回值vector<Mat>为根据波峰波谷切割出的图形//垂直投影分析vector<Mat> GetVerticalProjection(Mat src,Mat &dst){ vector<Mat> rois; dst = Mat::ze...原创 2018-08-10 00:21:50 · 3801 阅读 · 0 评论 -
C语言指针学习——对使用字符指针变量和字符数组的讨论
虽然使用字符数组和字符指针变量都能实现字符串的存储和运算,但二者还是有区别的,不能混为一谈。主要概括有以下几点:1.字符数组由若干个元素构成,每个元素中存放一个字符,而指针变量存放的是字符串第一个字符的地址,而不是将字符串存放到指针变量中。2.赋值方式。对字符数组只能对各个元素进行赋值,而不能采用一下办法进行赋值。char str[20];str ="hello world";原创 2018-01-11 13:10:29 · 478 阅读 · 0 评论